如何在主机上为 docker-compose.yml 中的命名卷设置路径 [英] How to set a path on host for a named volume in docker-compose.yml
问题描述
下面的示例创建 dbdata 命名卷并在 db 服务中引用它:
Example below creates dbdata named volume and references it inside db service:
version: '2'
services:
db:
image: mysql
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
driver: local
(来自https://stackoverflow.com/a/35675553/4291814)
我可以看到卷的路径默认为:
I can see the path for the volume defaults to:
/var/lib/docker/volumes/
我的问题是如何在主机上为 dbdata
卷配置路径?
My question is how to configure the path on host for the dbdata
volume?
推荐答案
通过 local
卷驱动程序可以使用任意挂载;通过使用绑定挂载,您可以完全实现这一点.
With the local
volume driver comes the ability to use arbitrary mounts; by using a bind mount you can achieve exactly this.
要设置挂载到 /srv/db-data
的命名卷,您的 docker-compose.yml
将如下所示:
For setting up a named volume that gets mounted into /srv/db-data
, your docker-compose.yml
would look like this:
version: '2'
services:
db:
image: mysql
volumes:
- dbdata:/var/lib/mysql
volumes:
dbdata:
driver: local
driver_opts:
type: 'none'
o: 'bind'
device: '/srv/db-data'
我没有用 compose 文件格式的第 2 版对其进行测试,但是 https://docs.docker.com/compose/compose-file/compose-versioning/#version-2 不表示它不应该工作.
I have not tested it with the version 2 of the compose file format, but https://docs.docker.com/compose/compose-file/compose-versioning/#version-2 does not indicate, that it should not work.
我也没有在 Windows 上测试过...
I've also not tested it on Windows...
这篇关于如何在主机上为 docker-compose.yml 中的命名卷设置路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!