1. 程式人生 > >DOCKER-1-5-儲存卷

DOCKER-1-5-儲存卷

1.起一個新容器b2,通過引數-v指定目錄/data。進入容器,發現自動在根目錄下建立了一個目錄/data。另一個視窗inspect檢視b2資訊,volumes的值為/data。通過mounts值可以看見宿主機上的掛載地址。這裡系統會自動在宿主機上建立被掛載目錄。

 

2.直接在宿主機上的目錄,建立一個測試檔案test.html。在容器中的掛載目錄檢視,發現可以同步看到測試檔案。在容器中的掛載點嘗試追加寫入,在宿主機上的被掛載目錄中檢視測試檔案,同步更新為新內容。

3.也可以在-v引數中指定宿主機的被掛載目錄,退出容器後再此建立,指明被掛載目錄,這時如果不存在系統會自動建立。建立完成後再在宿主機上建立測試檔案。在容器可以同步檢視測試檔案。退出後再次執行容器,改變掛載點,但被掛載目錄中的測試檔案依然存在。這樣資料就實現了與容器生命週期的脫離而可以持久儲存(也可以通過特殊指令清除,這裡不進行演示)。

4.容器資訊中有時候有層層巢狀,這時候可以使用結構化查詢,通過-f引數和{{}},. 表示根,每次增加 . 表示選擇下一層查詢字元。這樣我們就可以查詢到具體的資訊。

5.再起一個容器b3,並寫入新的資訊。在容器b2上查詢掛載點的測試檔案,發現已經進行了更新。由此可見兩個容器間是可以共享資料的,因為資料最終是存放在宿主機上的。

6.為了解決我們處理多容器的時候需要記住路徑的問題,可以先建立一個基礎容器,這裡我們建立infracon,後面其他容器都引用該容器的路徑即可。後面建立容器nginx-0。檢視兩個容器的掛載地址,發現是相同的。