如何在docker composer v3中替换卷

如何在docker composer v3中替换卷,docker,docker-compose,Docker,Docker Compose,我想知道以下配置的等效配置,以适合docker-composer.yml的第3版!来自的卷不再有效,因此我是否应该跳过数据卷并将其替换为顶级卷 version: '2' services: php: build: ./docker-files/php-fpm/. volumes_from: - data working_dir: /code links: - mysql nginx: image: nginx:lates

我想知道以下配置的等效配置,以适合docker-composer.yml的第3版!来自的卷不再有效,因此我是否应该跳过数据卷并将其替换为顶级卷

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

默认情况下,命名卷允许您在容器之间共享数据。但在重启容器后,在主机上的同一位置存储数据会出现一些问题。但是我们可以使用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
卷:
数据:
外部:true#<表示将数据存储到主机

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

Ok,但是data:service不再起作用了?直接共享主机卷有什么坏处吗?像
volumes:.:/code
只有当数据容器将数据封装在其内部时,您才需要数据容器。在这种情况下,您可以简单地备份此数据,将容器(带有数据)移动到另一台主机。这是。但如果您想使用另一种方法:在主机上存储数据,那么数据容器是不必要的。当您想与其他用户共享您的设置时,为基本功能安装第三方插件(例如,我们在主机上有一个特定的装入点)是不可接受的。docker开发者将docker compose版本3的基本功能保留在docker compose版本3之外,我对此感到非常失望。docker compose版本3可以使用
而不是
链接
我不确定这是否真的回答了问题。您的评论仍然没有解决关于使用纯数据容器的问题。在此配置中,永远不会使用服务
数据:…
。(截至2018年5月)