[英]Relative path not working with named volumes in the docker-compose.yml
[英]docker-compose.yml Syntax for Named Volumes
什么是docker-compose.yml
語法,用於指定命名卷的主機路徑?
volumes:
myvolume: # how do I specify path here?
othervolume:
services: # etc...
我檢查了文檔 ,但我找不到它。 老實說,我不知道有人使用這些東西。
撰寫卷的常見方案是使用默認的命名卷,該卷映射到本地卷驅動程序並將卷放在/ var / lib / docker / volumes中。 不是你想要的,但對許多人來說這是一個簡單的選擇:
version: '3'
volumes:
myvolume:
othervolume:
services:
myservice:
volumes:
- myvolume:/volume/path
映射主機卷的常用方法是直接指定路徑,不需要卷上的名稱。 再次,不是你要求的,但它很容易實現。 這是封面下的綁定安裝:
version: '3'
services:
myservice:
volumes:
- ./path:/volume/path
如果您希望將命名卷和主機卷放在一起,那么您要查找的是配置為使用綁定裝入的命名卷。 如果目錄沒有預先存在,這有失敗的缺點,但是有一個好處,即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
請注意,綁定掛載的缺點是它將容器管理的文件與容器中的uid / gid一起放置在主機上其他用戶可能使用的路徑中,通常在主機上使用不同的uid / gid。 結果是主機上或容器內的權限問題。 您需要在兩者之間對齊uid / gid以避免這種情況。
在相同的參考文檔中,您可以檢查示例docker-compose.yml的完整擴展版本
https://docs.docker.com/compose/compose-file/#compose-file-structure-and-examples
有關命名卷安裝,請參閱db部分。
db:
image: postgres:9.4
volumes:
- db-data:/var/lib/postgresql/data
networks:
- backend
deploy:
placement:
constraints: [node.role == manager]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.