Docker 命名卷與 DOC(資料專用容器)


Docker 提供了多種在容器中儲存資料的方法。兩種流行的選擇是命名卷和 DOC(資料專用容器)。在本文中,我們將比較這兩種選項,並討論何時使用其中一個比另一個更合適。

什麼是 Docker 命名卷?

Docker 命名卷是持久化 Docker 容器中資料的一種方式。它們允許您建立一個命名卷並將其掛載到容器,以便即使容器停止或刪除,儲存在卷中的資料也會保留。

要在 Docker 中建立命名卷,可以使用docker volume create命令。例如 -

$ docker volume create my-volume
my-volume

要將命名卷掛載到容器,可以使用docker run命令的 -v 標誌。例如 -

$ docker run -d -v my-volume:/app/data busybox

在此示例中,命名卷my-volume被掛載到busybox容器中的/app/data目錄。儲存在/app/data目錄中的任何資料都將持久化到命名卷中,即使容器停止或刪除也是如此。

命名卷有一些優點 -

  • 它們易於使用,不需要任何額外的配置

  • 它們是可移植的,這意味著它們可以與同一主機上的任何容器一起使用

  • 它們可以在多個容器之間共享

但是,使用命名卷也有一些缺點 -

  • 它們只能在建立它們的宿主機器上使用

  • 如果卷數量眾多,則它們可能難以管理和維護

什麼是 Docker DOC(資料專用容器)?

DOC(資料專用容器)是使用不同方法在 Docker 容器中儲存資料的一種方式。您不是使用命名卷,而是專門建立一個用於儲存資料的容器,然後根據需要將資料從該容器掛載到其他容器。

要在 Docker 中建立 DOC,可以使用docker create命令。例如 -

$ docker create -v /app/data --name data-container busybox /bin/true

在此示例中,使用busybox映象建立了一個名為data-container的新容器。-v標誌用於在容器的/app/data處建立卷,/bin/true命令用於保持容器執行。

要將資料從 DOC 掛載到另一個容器,可以使用docker run命令的--volumes-from標誌。例如 -

$ docker run -itd --volumes-from data-container busybox

在此示例中,data-container DOC 中的資料被掛載到busybox容器。儲存在data-container/app/data目錄中的任何資料都將可用於busybox容器。

DOC 有一些優點 -

  • 它們允許您將資料與容器分離,從而更容易管理和維護

  • 只要 DOC 存在,它們就可以在任何主機上使用

  • 它們可以用於在多個容器之間共享資料

但是,使用 DOC 也有一些缺點 -

  • 它們需要額外的步驟來建立和配置 DOC

  • 它們不如命名卷可移植,因為它們需要存在於使用它們的每個主機上

  • 它們不如命名卷易於使用,因為它們需要額外的步驟才能將資料掛載到其他容器

實現

以下是建立資料專用容器的實現。

步驟 1 - 建立一個用作卷的容器。

$ docker create -v /DOC --name data-container3 busybox /bin/true

步驟 2 - 執行一個連線資料容器 3 的容器

$ docker run -itd --volumes-from data-container3 --name test1 busybox

進入並檢查卷 /DOC 是否存在 -

$ $ docker exec -it test1 sh
/ # ls
DOC    bin    dev    etc    home   lib    lib64  proc   root   sys    tmp    usr    var

因此 DOC 卷存在。

命名卷和 DOC 的比較

那麼,哪種資料儲存選項更好 - 命名卷或 DOC?答案最終取決於您的特定需求和用例。以下是一些幫助您做出決定的注意事項 -

特性

命名卷

DOC(資料專用容器)

配置

不需要額外的配置

需要建立和配置單獨的資料專用容器

可移植性

它可以與同一主機上的任何容器一起使用

只要 DOC 存在,它就可以在任何主機上使用

資料管理

資料儲存在容器內,並且在卷數量眾多時可能難以管理

資料與容器分離,使其更易於管理

共享

可以在同一主機上的多個容器之間共享

只要 DOC 存在,它就可以在任何主機上的多個容器之間共享

易用性

簡單易用

需要額外的步驟才能將資料掛載到其他容器

偏好

對於特定任務,是否首選 Docker 命名卷或 DOC 將取決於具體的要求和用例。在決定使用哪種資料儲存選項時,請考慮以下事項 -

  • 如果您想要一個簡單易用的資料儲存選項,則命名卷可能是更好的選擇。它們不需要任何額外的配置,並且可以與同一主機上的任何容器一起使用。

  • 如果您需要更靈活、更可移植的資料儲存選項,則 DOC 可能是您的選擇。只要 DOC 存在,它們就可以在任何主機上使用,並且它們允許您將資料與容器分離以進行更輕鬆的管理。

  • 如果您有大量資料卷,則命名卷可能更難管理。在這種情況下,DOC 可能是更好的選擇,因為它們允許您將資料與容器分離並使其更易於管理。

  • 如果您需要在多個容器之間共享資料,則命名卷或 DOC 都可以。命名卷可以在同一主機上的任何容器之間共享,而 DOC 只要存在就可以在任何容器之間共享。

最終,最適合您的資料儲存選項將取決於您的特定需求和用例。請考慮您的需求並選擇最適合您的選項。

結論

總之,命名卷和 DOC 都是用於在 Docker 容器中儲存資料的有用選項。哪一個最適合您將取決於您的特定需求和用例。命名卷簡單易用,而 DOC 則更靈活並允許更好地管理資料。請考慮您的需求並選擇最適合您的選項。

更新於: 2023 年 1 月 16 日

2K+ 瀏覽量

開啟您的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.