現在您可以識別音量了。可以在容器之間共用磁碟區(只要只有一個容器同時對它們具有寫入存取權限!),這在複雜的環境中對於確保彈性非常重要,並且磁碟區的儲存位置可以由不同的驅動程式自由選擇。無論如何,卷的內容獨立於容器,不再與容器一起刪除。 本地目錄可以替代卷 使用磁碟區的另一種方法是使主機本機檔案系統中的目錄直接在容器中可用。需要注意的是,容器內的機制必須與主機檔案系統的機制相容。 Docker 文件指出,例如,Windows 主機可以將其檔案系統的某些技術行為傳遞給 Linux 容器,而容器中的資料庫並不希望將其傳遞給 Linux 容器。因此,通常首選使用卷,但本地文件或目錄對於某些目的也非常有用。
例如,作為開發人員,我可以將原始程式碼的本機目錄直接公開給正在運行的 。可以想像更複雜的變體 沙烏地阿拉伯 電話號碼 例如,如果容器內的進程監視目錄中的檔案的變更並自行重新啟動。然後,主機上的開發人員可以使用編輯器處理原始程式碼文件,容器中的進程會對變更做出反應。 順便說一句,最後一個範例說明了先前未解決的細節:當使用-v, --volume(這是該選項的長版本)或--mount(更適合傳遞更複雜參數的替代語法)時,容器上的路徑也可以使用尚未被圖像創建者聲明為卷的頁面。這允許您從外部替換容器內的任何檔案或資料夾或將儲存位置移到外部。 確保安全 最後,應該解決備份主題。
如果容器用於伺服器的長期運行,那麼與任何其他系統一樣,當然應該備份產生的資料。使用 Docker 進行資料備份基本上有兩種選擇。第一種方法是保護主機端的資料。如果容器中使用了主機上的目錄,那就很明顯了。但是,如果使用了卷,您需要找出它在主機上的位置。在上面的範例之一中,您可以docker inspect在輸出中看到 Linux 上的預設資料夾位於 。 如果要保護來自主機的數據,則應確保容器中的進程無法存取該資料。可能需要暫時停止容器才能實現此目的。您需要分析容器進程到底對資料執行什麼操作,以評估需要採取哪些步驟。 第二種可能的方法是在容器本身中執行備份作業。 |