簡體   English   中英

docker-compose.yml命名卷的語法

[英]docker-compose.yml Syntax for Named Volumes

什么是docker-compose.yml語法,用於指定命名卷的主機路徑?

泊塢窗,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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM