2017-01-29 25 views
2

如何使用Version 2.1 Docker Compose語法創建共享的命名卷。我想將主機文件夾掛載爲共享卷,並在關閉時將數據保存在主機上。如何使用與主機共享的數據創建命名的Docker數據卷

web: 
< ----- remainder of service defn omitted for clarity -----> 
    # Load the external volume 'pgdata' into the folder /var.. on the host 
    volumes: 
    - pg-data:/var/lib/postgresql/data 


# Top level volumes key allows sharing of volume across multiple services 
# Volumes defined as name: <path on host> 
volumes: 
    # Volume named pgdata is located here on the host 
    pg-data: #/var/lib/postgresql/data/ 
    # App data volume 
    app-data: #./scribl/ 
    # Static files volume 
    static-data: #./static/ 

更新: 我在尋找的關鍵是指定主機上的共享卷的位置的能力,即相同的老方法,但與命名容器

volumes: 
    - location/on/host:location/on/container 

回答

4

Alrighty,通過git的問題清單後一番搜索,我們有:

Github Issue

實施模樣日是,其中體積是頂級命令:

volumes: 
    # Volume named pgdata is located here on the host 
    pg-data: #/var/lib/postgresql/data/ 
    driver: local 
    driver_opts: 
     device: /var/lib/postgres/ # this is the mount path on the host 
     o: bind 

編輯:
設備路徑必須是絕對路徑 - >還有一大堆的來回用這個

1

泊塢窗的開發者「命名卷」和「指定主機上的安裝點」是互斥選項。它可能是可能做到這一點(因爲有些人已經嘗試過與你鏈接的Github問題中的一系列命令),但它確實不是一個常見的用例,所以它不應該是需要甚至一般推薦

命名卷的要點是能夠通過爲數據卷提供一個名稱來重複使用(裝入另一個容器)數據,以便知道其中包含的內容。這樣,當你啓動另一個容器時,你可以執行類似-v my-mysql-data:/var/lib/mysql的操作,而無需在主機上指定安裝點。如果您在主機上爲卷指定裝入點,則不需要命名卷,因爲您已經有一個名稱(,路徑爲),您甚至可以檢查其內容。 「名稱」是「主機安裝點」。

+0

我同意你的意見,但命名的語法使映射到網絡驅動器清潔的共享卷的定義 – pypypy

相關問題