卷和docker-compose

Vin*_*oft 2 docker dockerfile docker-compose

我正在尝试创建一个包含--volumes-from指令的docker-compose.yml文件.有谁知道语法?

我一直在网上看了一段时间,似乎--volumes-from命令只能作为docker命令使用.我希望我错了.

Von*_*onC 7

2016年2月:

docs/compose-file.md提到:

从另一个服务或容器挂载所有卷,可选择指定只读访问(ro)或读写(rw).

(如果未指定访问级别,则将使用读写.)

volumes_from:
 - service_name
 - service_name:ro
 - container:container_name
 - container:container_name:rw
Run Code Online (Sandbox Code Playgroud)

例如(来自本期本期)

version: "2"

services:
...
  db:
    image: mongo:3.0.8
    volumes_from:
      - dbdata
    networks:
      - back
    links:
      - dbdata

 dbdata:
    image: busybox
    volumes:
      - /data/db
Run Code Online (Sandbox Code Playgroud)

注意2017年8月:使用docker-compose版本3,关于卷:

顶级密钥定义命名卷,并从每个服务的卷列表中引用它.
这将替换volumes_from早期版本的Compose文件格式.有关的一般信息,请参阅使用卷卷插件.

例:

version: "3.2"
services:
  web:
    image: nginx:alpine
    volumes:
      - type: volume
        source: mydata
        target: /data
        volume:
          nocopy: true
      - type: bind
        source: ./static
        target: /opt/app/static

  db:
    image: postgres:latest
    volumes:
      - "/var/run/postgres/postgres.sock:/var/run/postgres/postgres.sock"
      - "dbdata:/var/lib/postgresql/data"

volumes:
  mydata:
  dbdata:
Run Code Online (Sandbox Code Playgroud)

此示例显示服务使用的命名卷(mydata)web以及为单个服务(db服务卷下的第一个路径)定义的绑定安装.

db服务还使用名为的卷dbdata(db服务卷下的第二个路径),但使用旧的字符串格式定义它以装入命名卷.

必须在顶级卷键下列出命名卷,如图所示.