如何在docker-compose版本2上设置套接字?

使用:

  • Ubuntu的:14.04
  • docker工人1.10.3
  • docker-compose 1.6.2

我可以通过做这样的事情来设置docker-compose版本1的套接字:

container_name_1: container_name: container_1 image: <- image -> volumes: - "/root:/home/app" - "/var/run/docker.sock:/var/run/docker.sock" - "/usr/bin/docker:/usr/bin/docker:ro" - "/usr/lib/x86_64-linux-gnu/libapparmor.so.1:/usr/lib/x86_64-linux-gnu/libapparmor.so.1:ro" - "/usr/lib/x86_64-linux-gnu/libapparmor.so.1.1.0:/usr/lib/x86_64-linux-gnu/libapparmor.so.1.1.0:ro" container_name_2: container_name: container_2 image: <- image -> volumes: - "/root:/home/app" - "/var/run/docker.sock:/var/run/docker.sock" - "/usr/bin/docker:/usr/bin/docker:ro" - "/usr/lib/x86_64-linux-gnu/libapparmor.so.1:/usr/lib/x86_64-linux-gnu/libapparmor.so.1:ro" - "/usr/lib/x86_64-linux-gnu/libapparmor.so.1.1.0:/usr/lib/x86_64-linux-gnu/libapparmor.so.1.1.0:ro" 

但是,当我尝试在版本2语法不起作用:

 version: '2' services: mysql: image: mysql ports: - "3000:3306" container_name: mysql_container environment: - MYSQL_ROOT_PASSWORD=<-- password --> - MYSQL_DATABASE=<-- database --> volumes_from: - data data: image: ubuntu container_name: data_container_name volumes: - /var/lib/mysql do_something: image: <-- image --> container_name: action_container volumes_from: - data:/var/lib/mysql - /var/run/docker.sock:/var/run/docker.sock - /usr/bin/docker:/usr/bin/docker:ro - /usr/lib/x86_64-linux-gnu/libapparmor.so.1:/usr/lib/x86_64-linux-gnu/libapparmor.so.1:ro - /usr/lib/x86_64-linux-gnu/libapparmor.so.1.1.0:/usr/lib/x86_64-linux-gnu/libapparmor.so.1.1.0:ro depends_on: - data - mysql volumes: data_container_name: driver: local 

我得到的错误是:

 ERROR: Unknown volumes_from type '/usr/bin/docker' in '/usr/bin/docker:/usr/bin/docker:ro' 

我在那个位置有一个docker可执行文件,它在使用版本1格式时工作。

有任何想法吗?

版本2中的volumes_from语法提到:

 volumes_from: - service_name - service_name:ro - container:container_name - container:container_name:rw 

/usr/bin/docker既不是容器也不是服务名称。

 volumes_from: - data:/var/lib/mysql <=== works - /usr/bin/docker:/usr/bin/docker:ro <=== won't work 

您将需要使用volumes:为了装载path

 - /var/run/docker.sock:/var/run/docker.sock