繁体   English   中英

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

[英]How to setup sockets on docker-compose version 2?

使用:

  • Ubuntu:14.04
  • 码头工人 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:为了挂载路径

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM