答案 0 :(得分:1)
Docker容器并非设计为VM,并不适用于热备份。相反,您应该定义容器,使其具有众所周知的启动状态。如果容器发生故障,备用容器应从众所周知的启动状态开始。如果您需要跟踪容器在运行时生成的状态,则必须在docker外部完成。
一种选择是使用卷将状态(文件)挂载到主机文件系统。然后使用RAID,NTFS或任何其他方法与其他物理节点共享该文件系统。然后,您可以将相同的文件挂载到具有相同状态的第二台主机上的第二个docker容器上。
根据您在容器中运行的内容,您还必须在容器内声明共享,例如使用mongo复制集。重申虽然容器尚未设计为以运行时状态迁移。
答案 1 :(得分:1)
Docker之间的各种技术可以提供帮助,具体取决于您需要的HA。
如果您只是希望在不同主机上启动无状态服务容器,则需要网络覆盖,例如weave。
如果您希望复制数据以进行数据库故障转移等操作,则需要一个存储解决方案,例如Flocker。
如果要运行多个服务并进行负载平衡并忘记每个容器运行的主机,假设X实例已启动,那么Kubernetes就是您需要的工具。
可以使许多与Docker相关的工具协同工作,我们有a few stories on our blog already。