用于指定命名卷的主机路径的docker-compose.yml
语法是什么?
volumes:
myvolume: # how do I specify path here?
othervolume:
services: # etc...
我已经检查过docs,但找不到。老实说,我不知道有人怎么使用这些东西。
答案 0 :(得分:5)
使用组合卷的常见情况是使用默认的命名卷,该默认卷映射到本地卷驱动程序,并将卷放置在/ var / lib / docker / volumes中。不是您要找的东西,但这对许多人来说是简单的选择:
clientHeight
映射主机卷的常用方法是直接指定路径,无需在卷上指定名称。同样,这不是您要的,但是很容易实现。这是一个隐藏式装订:
version: '3'
volumes:
myvolume:
othervolume:
services:
myservice:
volumes:
- myvolume:/volume/path
如果要将命名卷和主机卷放在一起,则要查找的是配置为使用绑定安装的命名卷。如果目录不存在,这样做的缺点是失败,但另一方面,docker可以将一个空目录初始化为映像的内容。
version: '3'
services:
myservice:
volumes:
- ./path:/volume/path
请注意,绑定装载的缺点是它将文件(由容器管理)与容器中的uid / gid一起放置在主机上其他用户可能使用的路径内,并且通常使用其他uid / gid主人。结果是主机上或容器内的权限问题。您需要在两者之间对齐uid / gid来避免这种情况。
答案 1 :(得分:0)
在同一参考文档中,您可以检查示例docker-compose.yml的完整扩展版本
https://docs.docker.com/compose/compose-file/#compose-file-structure-and-examples
有关命名卷安装,请参见“数据库”部分。
db:
image: postgres:9.4
volumes:
- db-data:/var/lib/postgresql/data
networks:
- backend
deploy:
placement:
constraints: [node.role == manager]