Docker

在使用 Docker 卷時,CoreOS 如何遷移 Docker 容器?

  • November 24, 2014

我剛剛學習如何使用 CoreOS 並且已經遇到了第一個真正困擾我的問題:當使用fleetctl 啟動和管理單元時,我了解到一個單元會自動移動到另一台機器上,當機器選擇執行單元重新啟動或由於其他原因無法訪問集群。現在想像一下,當您有一個執行 Docker 容器的單元時,該單元可以訪問僅存在於特定機器上的某個目錄(通過 Docker 卷)。

如果執行這個容器的單元被移動到另一台機器上會發生什麼?我想該單元將失敗,因為應該作為 Docker 卷安裝的目錄不存在於新機器上。這真的會發生嗎?我該如何規避這個問題?一般來說,在自動遷移容器的情況下,如何持久化 docker 容器使用的工作數據?

我想現在確保數據可用是您的責任。您可能需要查看https://github.com/ClusterHQ/flocker,它專門設計用於將數據與 docker 容器一起處理。我認為它依賴於 ZFS 功能,這可能會排除它在 CoreOS 上的使用。我能想到的唯一選擇是使用安裝在 CoreOS 上的高可用性外部卷。

您可以考慮在 CoreOS 集群上執行一些分佈式文件系統。這樣,無論您的數據庫服務容器在什麼機器上結束,它都將始終能夠使用從 DFS 掛載的數據庫。

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