簡體   English   中英

Docker swarm 帶卷裝容器

[英]Docker swarm with volume mounted container

我有一個 docker 容器,它的卷與主機卷一起安裝。 這是它的 docker-compose 服務:

  core:
    image: index.docker.io/kaushal/demo_img
    volumes:
      - ./data/custom:/opt/custom:z

這里./data/custom是主機目錄,它與容器中的/opt/custom目錄一起掛載。 現在,為了實現高可用性,我想在不同的節點上使用 docker swarm 運行這個容器的多個副本。

當我啟動 swarm 時,它總是顯示0/2副本。 原因在這里突出顯示: https://stackoverflow.com/a/56707801/5353128 (tl;博士,因為我在其他 swarm 節點中沒有./data/custom目錄)。

這個問題似乎是 docker swarm 的常見問題,但我找不到直接的解決方案。 一些 SO 帖子建議使用共享卷,但不清楚如何為這樣一個簡單的用例實現這樣的共享卷。

此外,是否有任何替代共享卷? 任何參考將不勝感激。 謝謝!

Docker 本身只為一個卷安裝東西。 它本身沒有內置任何類型的文件共享機制。您指定的卷類型是綁定掛載,它只是將運行容器的主機上的目錄掛載到該容器內的某個位置。 See https://unix.stackexchange.com/questions/198590/what-is-a-bind-mount for info on what a bind mount is in the generic linux/unix sense and https://docs.docker.com/ storage/bind-mounts/用於特定於 docker 的品種。

另一種類型的掛載是 NFS。 https://stackoverflow.com/a/44825756/4930423是一個很好地討論了這個問題的答案。

您也可以引入其他文件系統類型——cifs/samba 是另一種可能性。

人們使用的另一種方法是讓每個節點使用主機的 /etc/fstab 掛載一個 nfs/cifs/other 類型的共享目錄,然后從那里使用 docker 綁定掛載。 任何滿足您的工作負載要求的文件共享技術都可以使用此設置 - 確保您的 io 足夠高,並且所討論的工作負載沒有任何基本問題,因為遠程訪問類型文件系統不可避免地會增加延遲。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM