gpt4 book ai didi

命名卷的 docker-compose.yml 语法

转载 作者:行者123 更新时间:2023-12-02 02:40:38 24 4
gpt4 key购买 nike

用于指定命名卷的主机路径的docker-compose.yml语法是什么?

docker-compose.yml:

volumes:
myvolume: # how do I specify path here?
othervolume:

services: # etc...

我检查了docs ,但我找不到它。老实说,我不知道有人如何使用这个东西。

最佳答案

组合卷的常见场景是使用默认命名卷,该卷映射到本地卷驱动程序并将卷放置在/var/lib/docker/volumes 中。这不是您想要的,但对许多人来说这是一个简单的选择:

version: '3'
volumes:
myvolume:
othervolume:
services:
myservice:
volumes:
- myvolume:/volume/path

映射主机卷的常用方法是直接指定路径,不需要卷上的名称。再说一遍,这不是您所要求的,但它很容易实现。这是幕后的绑定(bind)安装:

version: '3'
services:
myservice:
volumes:
- ./path:/volume/path

如果您希望将命名卷和主机卷放在一起,那么您需要的是配置为使用绑定(bind)安装的命名卷。如果目录不预先存在,这样做的缺点是会失败,但优点是 docker 可以将空目录初始化为镜像的内容。

version: '3'
volumes:
myvolume:
driver: local
driver_opts:
type: none
o: bind
device: /host/path/to/volume
services:
myservice:
volumes:
- myvolume:/container/volume/path

请注意,绑定(bind)挂载的缺点是它将由容器管理的文件(带有来自容器的 uid/gid)放置在主机上其他用户可能使用的路径内,通常具有不同的 uid/gid主人。结果是主机上或容器内部出现权限问题。您需要在两者之间对齐 uid/gid 以避免这种情况。

关于命名卷的 docker-compose.yml 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52814824/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com