我在hyperledger fabric设置中有一个docker容器。这将存储所有用户凭据。
如果该容器或机器宕机且不可用,会发生什么情况?
如果我启动备份容器,如何恢复整个状态?
我尝试执行提交选项,但在重新启动它时,它不能像预期的那样工作。CA功能更可能使用一些容器id来跟踪,因为CA服务器是设置的高度保密的价格。
发布于 2018-06-26 06:53:17
总体而言,这更多的是一个策略问题,有许多方法可以备份关键数据-您可能选择也可能不选择特定于Docker容器的方法。
关于您提出的技术问题:
如果容器“关闭”,它的文件将保持完好,并在重新启动时仍然存在(即,如果您重新启动相同的容器,并且不创建新的容器)。如果机器停机,当机器重新启动时,容器将“恢复”。根据您创建容器的方式,您可能需要自己启动它,或者Docker可能会自动重新启动它。如果它出了问题再也回不来了,你就会丢失所有的数据,包括容器中的文件。
你可以创建一个“备份容器”(或者更准确地说,是一个备份镜像),但是如果它被留在同一台机器上,它将和那台机器一起死掉。您需要将其保存到其他地方(例如,使用“docker push”,但我不建议这样做,除非您有自己的docker注册表用于备份)。
如果您执行“提交”,这只会创建一个新的容器映像,其中的文件与您执行提交时的文件相同。如果你想要一个所有文件的正确副本,你应该提交一个停止的容器-我不认为你可以在有活动的打开文件的情况下这样做。此副本位于容器所在的同一台机器上,因此您仍然需要将其从该机器上保存,以防止丢失。请注意,要使用保存的图像,您应该标记它并使用它启动一个新的容器。启动旧容器的镜像不会受到“提交”的影响(使用该旧镜像将启动容器,就像您第一次创建它时一样)。
IMO,一个比'commit‘更好的选项(它保存整个容器文件系统,以及所有的垃圾文件,如日志和临时文件。将docker卷挂载到存储重要文件的路径(例如,如果运行mysql数据库,则为/var/lib/mysql )-并且仅备份该卷。
https://stackoverflow.com/questions/51033321
复制相似问题