Docker

在 docker 集群中復製文件夾

  • January 25, 2018

所以我對 docker 很陌生,尤其是 docker swarm。我剛剛安裝了 jenkins,我希望它能夠在所有節點上工作,無論它在一台機器上僅執行一個實例還是在 5 台機器上執行 10 個實例。

這個問題當然是“詹金斯怎麼知道我有什麼建構定義”。詹金斯可能有一種特定的解決方法,但我認為自己將來會遇到類似的問題。所以這讓我想到,有沒有簡單的方法在文件系統/卷上設置複製?最好在可以在 docker swarm 環境中工作的主/從配置中?

即使你有一個神奇的數據複製解決方案,也不能完全解決問題。注意我不是詹金斯專家。

聽起來您需要的是 Jenkins 容器的數據持久性。

至少有兩種方法可以使具有持久數據需求的應用程序(如數據庫、Jenkins 等)在容器集群中工作:

  1. 使用應用程序的內置集群。詹金斯可以做多主嗎?在容器編排器中執行這種類型的 HA 並沒有太大變化。如果應用程序 (Jenkins) 支持 HA,那麼通常最好這樣做。就像使用 Mongodb 副本或彈性搜尋集群一樣……最好使用一個容器創建單獨的 swarm 服務,並讓它們像使用 Swarm 之前那樣相互連接。
  2. 使用 Swarm 儲存持久數據並讓它重新創建失敗的容器。將 Jenkins 的數據儲存在 Swarm 感知的 docker 卷中。這將需要共享儲存和像REX-Ray這樣的捲外掛,或者store.docker.com上的任何外掛來保存需要連接到正在執行的 Jenkins 實例以使其工作的所有內容。然後,在 docker 卷、Swarm 配置和 Swarm 機密之間,當執行 Jenkins 容器的服務死亡或必須重新創建容器時,它將確保卷/配置/機密位於任務(容器)的任何節點上啟動。這不是真正的 HA,但它很接近。

引用自:https://serverfault.com/questions/893951