我正在使用 docker-compose 和 v3。我正在尝试在 docker 中安装一个卷:
./appdata:/appdata
我想将其作为一个卷,然后从多个容器中引用该卷。 卷配置参考 只显示 data-volume:
作为命名卷,没有值,所以看起来不像上面。
services:
nginx:
build: ./nginx/
ports:
- 80:80
links:
- php
volumes:
- app-volume
php:
build: ./php/
expose:
- 9000
volumes:
- app-volume
volumes:
app-volume: ./appdata:/appdata
这给了我:
错误:在文件 ‘./docker-compose.yml’ 中,卷 ‘app-volume’ 必须是映射而不是字符串。
显然我知道我需要更改 volumes
键/值对,但我不确定 如何 更改它,以便我可以在服务之间共享一个卷。
我还检查了 volumes_from
但这实际上只允许从其他容器继承。我见过有人在另一个包含他们想要的映射的容器上使用 volumes_from
,但是设置了 command: true
以便容器永远不会真正运行,对我来说这似乎是一个 hack .
我怎样才能做到这一点?
请注意,我 确实 有以下工作:
nginx:
volumes:
- ./appdata:/appdata
php:
volumes:
- ./appdata:/appdata
但这只是重复,我希望命名卷可以帮助我避免:-)
原文由 Jimbo 发布,翻译遵循 CC BY-SA 4.0 许可协议
从版本 docker-compose 3 开始删除了名为 volumes 的 docker。
但是,您可以使用 扩展字段 来避免复制卷源并防止自己将来出现拼写错误:
注意: 此功能从版本 3.4 文件格式开始可用。