如何在docker-composer v3中替换volumes_from

问题描述:

我想知道下面的配置的等价物以适应docker-composer.yml的版本3! volumes_from不再有效,所以我应该跳过数据卷并将其替换为*卷?如何在docker-composer v3中替换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 

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

迁移到3版本你,如果你想容量的数据存储到特定地点的主机)上需要

1)安装local-persist泊坞窗插件(

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 

但你不能对主机

+0

确定此卷上指定路径,但数据:服务不具有的功能不再?是否有直接分享主机卷的缺点? Like 'volume:。:/ code' – prometheus

+1

只有当此容器封装自己内部的数据时,才需要数据容器。在这种情况下,您可以简单地备份这些数据,将容器(包含数据)移动到另一个主机。这是[仅数据容器模式](http://container42.com/2013/12/16/persistent-volumes-with-docker-container-as-volume-pattern/)。 但是,如果你想要使用另一种方法:将数据存储在主机上,那么不需要数据容器 –

+5

安装第三方插件的基本功能(例如我们在主机上有特定的挂载点)是不可接受的,当你想与其他人共享你的设置用户。码头开发人员对docker-compose版本3以外的基本功能留下了非常失望的结果 – chefarov