Docker Compose启动数据卷容器为什么只能启动最后那一个


我的docker-compose.yml如下:

dvc:
image: debian:wheezy
volumes:
- /www:/usr/share/nginx/html:ro

nginx:
image: nginx:latest
volumes_from:
- dvc
ports:
- "80"

然后使用下列命令启动:

docker-compose scale dvc=3 nginx=4

启动结果如附件1的图,有几个问题想请教一下:

1.为什么nginx那个server可以启动4个container,而dvc那个只能是最后一个,执行过程中显示的如附件2所示 ?

2.如何设置nginx的参数,可以使主机的80端口映射到container的任意端口?

3.目前这样的构建方式不知道是不是合理的,即我把两个服务写到了一个yml中,因为根据官方文档,external_links这个参数常用在数据共享中,也就是用一个docker-compose.yml来启动一个数据卷容器,另一个docker-compose.yml启动Nginx服务,然后设置external_links的参数来使用数据卷容器,这两者哪个更好点呢?
222.png 441.png
已邀请:

hesonglin - 文艺理科生

赞同来自: DockOne


自己来回复一下:默认情况下,镜像debian:wheezy如果没有默认的服务在运行的话就会退出,所以要改变一下默认的命令,docker-compose.yml为:
dvc:
image: debian:wheezy
volumes:
- /www:/usr/share/nginx/html:ro
command: bash -c "while true; do echo "hello"; sleep 2; done;"


此时的输出为附件1和2所示。
这个问题我提到了github/docker上,链接为: https://github.com/docker/comp ... 73238

hesonglin - 文艺理科生

赞同来自: DockOne


对于我的第二个问题的答案,我就不翻译了,链接为:https://github.com/docker/compose/issues/1307

xds2000 - 数人科技CTO

赞同来自:


这样的问题,你应该去docker/compose提交issue

hesonglin - 文艺理科生

赞同来自:


ok,thx

要回复问题请先登录注册