恢复Docker容器的状态

时间:2018-06-26 00:15:43

标签: hyperledger-fabric hyperledger restore ca

我在超级账本结构设置中有一个docker容器。这将存储所有用户凭据。
如果该容器或机器出现故障并且无法使用,会发生什么?
如果启动备份容器,如何恢复整个状态?

我尝试执行commit选项,但是在将其备份时,它没有按预期工作。由于CA服务器的安装价格极高,因此CA功能很有可能使用一些容器ID进行跟踪。

1 个答案:

答案 0 :(得分:0)

总的来说,这更多是一个战略问题,有许多方法可以备份关键数据-您可能会选择也可能不会选择特定于Docker容器的方法。

关于您提出的技术问题:

如果容器“关闭”,则其文件将保持不变,并且在重新启动时将保留在其中(也就是说,如果您重新启动同一容器并且不创建新的容器)。如果机器出现故障,则当机器重新启动时,容器将“备份”。根据创建容器的方式,您可能需要自行启动容器,或者Docker可能会自动重新启动容器。如果它掉下来很厉害而又不会回来-您将丢失所有数据,包括容器中的文件。

您可以创建一个“备份容器”(或更确切地说,一个备份映像),但是如果将其保留在同一台计算机上,它将在该计算机上死亡。您将需要将其保存在其他位置(例如,使用“ docker push”,但是我不建议您除非将自己的docker注册表用于备份)。

如果您执行“提交”,则仅创建一个新的容器映像,其中包含与提交时相同的文件。如果您想要所有文件的正确副本,则应该提交一个已停止的容器-我认为在有活动的打开文件的情况下,您不能这样做。此副本与容器位于同一台计算机上,因此您仍然需要将其保存在该计算机之外,以防止丢失。请注意,要使用保存的图像,您应该对其进行标记并使用它来启动新的容器。 “ commit”(提交)不影响您启动旧容器的图像(使用该旧图像将在您首次创建容器时按原样启动容器)。

IMO,比“提交”更好的选项(它可以保存整个容器文件系统以及所有垃圾文件,例如日志和临时文件)是将docker卷安装到存储重要文件的路径(例如, / var / lib / mysql(如果您运行mysql数据库)-仅备份该卷。