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

时间:2016-04-15 22:12:30

标签: docker docker-compose

使用:

  • 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格式时可以正常工作。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

volumes_from syntax in version 2提及:

render();

function render() {
    var width = document.getElementById('yourDivID').offsetWidth;
    if (width < 200) {
        foo();
    }
    else {
        bar();
    }
}

window.addEventListener('resize', render);

volumes_from: - service_name - service_name:ro - container:container_name - container:container_name:rw 既不是容器也不是服务名称。

/usr/bin/docker

您需要use volumes:才能安装路径

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