如何在 Docker 中處理持久化儲存(例如資料庫)?


您可以使用 Docker 捲來實現 Docker 持久化儲存的解決方案。也有繫結掛載,但它們的問題在於它們高度依賴於底層主機以及目錄結構。卷完全由 Docker 管理和控制。使用繫結掛載,我們將主機系統的檔案或目錄掛載到容器。我們可以透過其絕對路徑引用掛載的目錄。

但是,當我們使用卷時,我們在主機上的 Docker 儲存目錄中建立了一個新的目錄,該目錄由 Docker 管理。與在容器的可寫層上持久化檔案或資料相比,卷始終是更好的選擇。這是因為使用卷不會增加容器的大小。此外,卷的內容也存在於容器生命週期之外。

在我們開始使用卷之前,您需要了解使用卷相對於其他持久化儲存方法(如繫結掛載)的優勢。

  • 更易於遷移或備份。
  • 更易於使用簡單的 API 或 CLI 進行管理。
  • 它們適用於 Windows 和 Linux。
  • 安全且易於共享。
  • 驅動程式允許您將卷儲存在雲或遠端伺服器上,內容加密等。
  • 您可以使用其他容器中的內容預填充卷。

現在,讓我們看看如何掛載卷。您可以使用兩個不同的標誌 -v 和 --mount 在容器上掛載卷。

--mount 選項由逗號分隔的鍵值元組組成。它的語法更詳細,鍵的順序無關緊要。如果要指定驅動程式選項,則必須使用 --mount 選項。

-v 標誌有三個用 : 分隔的欄位,並且必須按正確的順序排列。讓我們看看如何使用不同的命令使用卷。

要建立卷,您可以使用 -

$ docker volume create my-vol

此命令將在主機上的 Docker 儲存目錄中建立名為 my-vol 的卷。

如果要列出所有卷,可以使用 -

$ docker volumes ls

要檢查 Docker 卷,請使用 -

$ docker volume inspect my-vol

這將列出所有詳細資訊,例如建立日期、路徑、關聯的容器等。

最後,要完全刪除 Docker 卷,您可以使用 -

$ docker volume rm my-vol

現在您已經建立了一個卷,下一步是將卷掛載到容器。請注意,如果您掛載不存在的卷,Docker 將自動為您建立它。

$ docker run -it --p 8080:80 --mount source=my-vol,target=/myapp nginx:latest

以上命令將建立一個與 Nginx 映象關聯的容器,並將埠 8080 釋出到主機上的埠 80。我們使用了 --mount 選項來指定鍵值對以定義卷的源名稱和需要在容器中掛載卷的目標位置。

另一種掛載卷的方法是使用 -v 或 --volume 選項。請考慮以下命令。

$ docker run -it -v /source/path/location:/destinal/container-path debian

您還可以輕鬆地與多個其他容器共享卷。這將允許您與多個其他容器共享資料和檔案。您可以使用 --volumes-from 選項執行此操作。您儲存在共享卷中的檔案將可供所有容器訪問,並且它們可以對其進行操作。更改也將反映在其他容器中。

總而言之,在本文中,我們討論瞭如何處理 Docker 中持久化資料儲存的問題。當您退出 Docker 容器時,其中儲存的所有資料都會丟失。因此,您可以使用卷或繫結掛載來解決此問題。

更新於:2021-08-06

183 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.