卷和docker-compose

时间:2016-02-29 13:43:22

标签: docker docker-compose dockerfile

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

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

1 个答案:

答案 0 :(得分:6)

2016年2月:

docs/compose-file.md提及:

  

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

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

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

例如(from this issuethis one

version: "2"

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

 dbdata:
    image: busybox
    volumes:
      - /data/db

注意2017年8月:docker-compose version 3, regarding volumes

  

顶级 volumes 键定义了一个命名卷,并从每个服务的卷列表中引用它。   这将取代早期版本的Compose文件格式中的volumes_from。有关卷的一般信息,请参阅Use volumesVolume Plugins

示例:

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:
  

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

     

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

     

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