所有 docker 磁碟區都可以放入一個分割區嗎? (例如:/var/lib/docker/volumes/ 在 /dev/sdb1 @fstab 中)

所有 docker 磁碟區都可以放入一個分割區嗎? (例如:/var/lib/docker/volumes/ 在 /dev/sdb1 @fstab 中)

我正在考慮將我們所有的文件和電子表格基礎設施從舊的獨立 samba 伺服器遷移到那些流行的自託管解決方案之一,並且我正在嘗試做最好的持久容易出錯的簡單(重新)安裝。我已經根據範例使用自己的 docker-compose 檔案輕鬆完成了第一次安裝。

它有許多容器,包括資料庫、Web 伺服器、憑證產生器和驗證器。

對於像我這樣的Docker 新手來說,備份看起來非常複雜,特別是因為一些網站說我什至不應該碰/var/lib/docker/volumes/ 並且我擔心套件管理器或docker install/updates 可能會破壞它。

在我看來,更快、更簡單的方法很簡單:

  • systemctl 停止 docker

  • docker save(s);docker 將容器匯出到 tars

  • 將 /dev/sdb1 複製到相同大小的映像或磁碟(如果 /var/lib/docker/volumes/ 掛載在 /dev/sdb1 中)

並在需要時進入未來機器的新伺服器:

  • 恢復clonezilla映像/裝置並將其掛載到/var/lib/docker/volumes
  • 安裝並啟動docker
  • 碼頭工人負載; docker 導入 tars

我擔心資料庫容器可能無法連接到它的捲,並且我會丟失登入名稱和版本控制,但從看起來來看,遺失檔案更難。

據我了解,逐個扇區的分區副本需要幾分鐘,而數百萬個檔案cp -R 需要幾個小時,這些步驟讓我覺得重新運行docker-compose 來更新資料庫和Web 引擎真的更安全,因為面對它網路需要它的安全和修補

你認為什麼比較安全──快點固然好,但不是真的必要──還是我夠安全?

謝謝你!

答案1

是否必須使用卷宗掛載?如果沒有,您應該檢查綁定安裝。只需從伺服器 A 取得檔案系統,將其複製到伺服器 B 並將其掛載為綁定掛載即可。

從積極的一面來看,遷移工作量很小,並且您可以將其儲存在伺服器上的任何位置。無需將其儲存在 /var/lib/docker/volumes 中。不利的一面是,您需要注意使用者和群組 ID 以及權限。根據您的設置,這可能會需要更多的努力。

相關內容