docker-compose.yml中定义了一系列服务.这些服务已经开始.我只需要重建其中一个并在没有其他服务的情况下启动它.我运行以下命令:
docker-compose up -d # run all services
docker-compose stop nginx # stop only one. but it still running !!!
docker-compose build --no-cache nginx
docker-compose up -d --no-deps # link nginx to other services
Run Code Online (Sandbox Code Playgroud)
最后我得到了旧的nginx容器.顺便说一句,docker-compose不会杀死所有正在运行的容器!
我最近开始使用Docker并且从未意识到我应该使用docker-compose down而不是ctrl-c或者docker-compose stop去除我的实验.我现在在本地有大量不需要的泊坞窗图像.
是否有一个标志我可以运行删除所有本地docker镜像和容器?
像docker rmi --all --force--all标志不存在,但我正在寻找具有类似想法的东西.
我在Mac OS 10.8.5上安装了docker-machine 0.1.0和docker-compose 1.1.0.
Docker-machine正常运行,可以通过docker-machine ssh连接.
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
dev * virtualbox Running tcp://192.168.99.100:2376
Run Code Online (Sandbox Code Playgroud)
但无法从docker-compose连接.
$ docker-compose up
Run Code Online (Sandbox Code Playgroud)
我的Dockerfile和docker-compose.yml就在这里.
Dockerfile
FROM centos:centos7
DOCKER_HOST tcp://192.168.99.100:2376
Run Code Online (Sandbox Code Playgroud)
泊坞窗,compose.yml
web:
build: .
Run Code Online (Sandbox Code Playgroud)
为什么不能连接?有任何想法吗?
我正在尝试使用 Airflow 和 Postgres 构建一个 docker 容器,但在构建过程中出现了许多错误,如下所示。我尝试过降级,markupsafe如下requirements.txt所示,但没有帮助。我可以做什么来解决这个问题?
# I tried this version:
markupsafe==2.1.1
# and then also this one:
markupsafe==2.0.1
Run Code Online (Sandbox Code Playgroud)
错误信息:
ImportError: cannot import name 'soft_unicode' from 'markupsafe' (/usr/local/lib/python3.7/site-packages/markupsafe/__init__.py)
Run Code Online (Sandbox Code Playgroud)
我的docker-compose.yml:
version: '3'
services:
postgres:
image: postgres:11.2
environment:
- POSTGRES_USER=airflow
- POSTGRES_PASSWORD=airflow
- POSTGRES_DB=airflow
ports:
- "5432:5432"
webserver:
image: puckel/docker-airflow:1.10.4
build:
context: https://github.com/puckel/docker-airflow.git#1.10.4
dockerfile: Dockerfile
args:
AIRFLOW_DEPS: gcp_api,s3
restart: always
depends_on:
- postgres
environment:
- LOAD_EX=n
- EXECUTOR=Local
- FERNET_KEY=jsDPRErfv8Z_eVTnGfF8ywd19j4pyqE3NpdUBA_oRTo=
volumes:
- ./sparkify/dags:/usr/local/airflow/dags
# Uncomment …Run Code Online (Sandbox Code Playgroud) 我正在尝试$ docker-compose up -d用于项目,并收到此错误消息:
错误:for api无法启动服务api:驱动程序无法在端点dataexploration_api_1上编程外部连接(8781c95937a0a4b0b8da233376f71d2fc135f46aad011401c019eb3d14a0b117):启动userland代理时出错:mkdir /port/tcp:0.0.0.0:9000:tcp:172.19.0.2:80:输入/输出错误在启动项目时遇到错误.
我想知道它是否可能是港口?我以前一直在尝试端口8080.该项目最初是在mac上设置的,我已经从gitHub克隆了存储库.
非常感谢你提前!
如果我运行$ docker-compose down以下内容,我似乎无法保持MySQL数据持续存在.yml
version: '2'
services:
# other services
data:
container_name: flask_data
image: mysql:latest
volumes:
- /var/lib/mysql
command: "true"
mysql:
container_name: flask_mysql
restart: always
image: mysql:latest
environment:
MYSQL_ROOT_PASSWORD: 'test_pass' # TODO: Change this
MYSQL_USER: 'test'
MYSQL_PASS: 'pass'
volumes_from:
- data
ports:
- "3306:3306"
Run Code Online (Sandbox Code Playgroud)
我的理解是在我的data容器中使用volumes: - /var/lib/mysqlmap将它映射到我的本地机器目录,其中mysql将数据存储到容器中,并且由于这种映射,即使容器被销毁,数据也应该保持不变.而mysql容器只是进入数据库的客户端接口,因为可以看到本地目录volumes_from: - data
尝试这个答案,它没有用.Docker-撰写持久性数据问题
编辑
改变了我.yml如下图所示,创建了目录./data,但现在当我运行docker-compose up --build的mysql容器无法启动抛出错误说
data:
container_name: flask_data
image: mysql:latest
volumes:
- ./data:/var/lib/mysql …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Docker Compose设置Docker Machine.
场景1(没有Docker Machine)
如果我在docker-compose up -d没有Docker Machine的情况下运行,它会创建我想要的3个链接容器(nginx + mongodb + nodejs).
场景2(使用Docker Machine)
然后我使用Docker Machine创建一个VM,并告诉Docker与该机器通信eval $(docker-machine env streambacker-dev).
此时,如果我ssh到我的docker机器并运行df -h,我得到:

如果我然后运行docker-compose up -d,我在下载最后一个容器时得到"设备上没有空间"错误.
之后"tmpfs"似乎确实有点满:

检查--virtualbox-disk-size选项显示它默认为20000 MB,我认为这两张图片上我们可以看到"/ dev/sda1".那么为什么容器会填满"tmpfs"n,究竟什么是"tmpfs"?是临时下载目录吗?如何为容器创建更多空间?
谢谢!
有关信息,我使用的是Docker Machine 0.4.0-rc2和Docker Compose 1.3.2.
我用这个图片:dperson/samba
图像定义了它自己的入口点,我不想覆盖它.
我需要将参数传递给入口点,只需使用docker即可:
docker run ... dperson/samba arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)
但是如何用docker_compose.yml做呢?
现在我用作解决方法:
command: samba.sh arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)
但是当我强行重新定义入口点时,它并不令人满意.
当我跑docker-compose up,我得到这个错误:
root@ubuntu:/home/benson/Docker/HaproxyMy# docker-compose up
Recreating 950ddc308278_950ddc308278_950ddc308278_950ddc308278_950ddc308278_haproxymy_webb_1
Recreating 485800bdf3a1_485800bdf3a1_485800bdf3a1_485800bdf3a1_485800bdf3a1_haproxymy_webc_1
Recreating 2b3338d88716_2b3338d88716_2b3338d88716_2b3338d88716_2b3338d88716_haproxymy_weba_1
ERROR: for webb No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099
ERROR: for webc No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099
ERROR: for weba No such image: sha256:15853e771e7ca3f5eecee38fcf97efd3ee164c1b66e2ef543d9985a04e78e099
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml:
weba:
build: ./web
expose:
- 80
webb:
build: ./web
expose:
- 80
webc:
build: ./web
expose:
- 80
haproxy:
image: haproxy:latest
volumes:
- ./haproxy:/haproxy-override
- ./haproxy/haproxy.cfg:/usr/local/etc/haproxy/haproxy.cfg:ro
links:
- weba
- webb
- webc
ports:
- "80:80"
- "70:70"
expose:
- "80"
- "70"
Run Code Online (Sandbox Code Playgroud) 我有一个docker-compose.yml包含几个容器.其中三个用于我的应用程序(客户端,服务器和数据库),其余用于各种开发工具(例如psql,npm,manage.py等).当我做docker-compose up所有这些都开始了,但我只想要三个主要的开始.由于我已经指定了链接,我可以docker-compose up client从这三个开始,但是输出只来自那个容器.那么,有没有办法做到以下其中一种:
docker-compose updocker-compose up clientdocker-compose ×10
docker ×8
dependencies ×1
github ×1
importerror ×1
python ×1
windows ×1
windows-10 ×1