我正在尝试使用docker-compose.yml
文件
version: '3'
services:
myapp-nginx:
image: nginx:1.10
volumes:
- ./nginx/certs:/etc/nginx/certs
ports:
- 80:80
- 443:443
使用以下构建命令
$ docker stack deploy --compose-file docker-compose.yml myapp
Creating network myapp_default
Creating service myapp_myapp-nginx
我的系统有Docker Version 17.03.1-ce-mac5 (16048)
卷安装不起作用,如果我注释掉volumes: - ./nginx/certs:/etc/nginx/certs
,那么一切正常。
否则nginx根本不起作用,我看
CAGTAM1059934:docker iskumar$ docker stack ps myapp
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR PORTS
efjia8b7y6jd myapp_myapp-nginx.1 nginx:1.10 manager1 Ready Rejected 5 seconds ago "invalid mount config for type…"
c9c6ogh11osi \_ myapp_myapp-nginx.1 nginx:1.10 worker2 Shutdown Rejected 10 seconds ago "invalid mount config for type…"
iveikxpnbq6x \_ myapp_myapp-nginx.1 nginx:1.10 worker1 Shutdown Rejected 15 seconds ago "invalid mount config for type…"
在docker-compose v3中安装卷有什么特殊方法吗?
答案 0 :(得分:0)
安装卷时必须使用绝对路径,也可以使用 docker run 。
$ docker run --rm -it -v ./eos:/eos:ro ubuntu
docker: Error response from daemon: create ./eos: "./eos" includes invalid characters for a local volume name, only "[a-zA-Z0-9][a-zA-Z0-9_.-]" are allowed. If you intented to pass a host directory, use absolute path.
See 'docker run --help'
答案 1 :(得分:0)
我在macbook上运行docker stack deploy
而不是在boot2docker VM上运行。这就是系统无法找到那些网络安装源的原因,即使我使用eval $(docker-machine env manager1)
首先,我使用了--no-trunc参数来查看完整的错误消息。
$> docker node ps --no-trunc
---
Showed "invalid mount config for type "bind": bind source path does not exist"
---
之后将文件从主机系统( My MacBook )复制到VM并启动堆栈工作正常。
归功于https://github.com/docker/docker/issues/31202#issuecomment-281312704