如何在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
但你不能对主机
确定此卷上指定路径,但数据:服务不具有的功能不再?是否有直接分享主机卷的缺点? Like 'volume:。:/ code' – prometheus
只有当此容器封装自己内部的数据时,才需要数据容器。在这种情况下,您可以简单地备份这些数据,将容器(包含数据)移动到另一个主机。这是[仅数据容器模式](http://container42.com/2013/12/16/persistent-volumes-with-docker-container-as-volume-pattern/)。 但是,如果你想要使用另一种方法:将数据存储在主机上,那么不需要数据容器 –
安装第三方插件的基本功能(例如我们在主机上有特定的挂载点)是不可接受的,当你想与其他人共享你的设置用户。码头开发人员对docker-compose版本3以外的基本功能留下了非常失望的结果 – chefarov