如何在docker-composer v3中替换volumes_from

时间:2017-02-15 08:25:10

标签: docker docker-compose

我想知道以下配置相当于docker-composer.yml的第3版! volumes_from不再有效所以我应该跳过数据卷并将其替换为顶级卷吗?

version: '2'
services:

  php:
    build: ./docker-files/php-fpm/.
    volumes_from:
      - data
    working_dir: /code
    links:
      - mysql

  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    volumes_from:
      - data
    links:
      - php

  data:
    image: tianon/true
    volumes:
      - .:/code

1 个答案:

答案 0 :(得分:9)

默认情况下,命名卷允许您在容器之间共享数据。但是在重新启动容器后将数据存储在主机上的相同位置会有一些麻烦。但我们可以使用local-persist docker插件来修复它。

要迁移到版本3,您需要

1)安装local-persist docker插件(如果要将卷数据存储到主机上的特定位置

2)修改docker-compose.yml

version: '3'
services:

  php:
    build: ./docker-files/php-fpm/.
    volumes:
      - data:/code
    working_dir: /code
    links:
      - mysql

  nginx:
    image: nginx:latest
    ports:
      - "80:80"
    volumes:
      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    volumes:
      - data:/code
    links:
      - php

  data:
    image: tianon/true
    volumes:
      - data:/code

# If you use local persist plugin
volumes:
  data:
    driver: local-persist
    driver_opts:
      mountpoint: /path/on/host/machine/

# Or If you dont want using local persist plugin
volumes:
  data:

此外,您可以使用此卷部分将卷数据存储到主机:

volumes:
  data:
    external: true #< it means store my data to the host machine

但是您无法在主机上指定此卷的路径