一尘不染

如何在docker-composer v3中替换volumes_from

docker

我想知道以下与docker-composer.yml版本3相适应的配置!volume_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

阅读 445

收藏
2020-06-17

共1个答案

一尘不染

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

要迁移到版本3,您需要

1)安装本地持久性 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

但是您不能在主机上为此卷指定路径

2020-06-17