如何在 Docker 中获取容器快照

我们如何获取容器快照并在另一个 docker 主机中加载快照。我想知道容器快照,而不是图像。我对 docker 中的 export/import 和 save/load 命令感到困惑。我喜欢更清晰或者更深入地了解他们。

使用元数据运行容器和屋顶的快照。另一个码头主机的确切状态。这方面的帮助将是巨大的。

100184 次浏览

命令 docker commit获取容器的快照。该快照是一个映像,您可以将其放在(私有)存储库中,以便能够将其放在另一个主机上。

一个不使用映像的选项(您说您想避免使用映像)实际上是 拯救装弹。根据文档,这将保存所有文件层的容器。因此,如果您使用子容器(如 Ubuntu > JavaJDK > 弹性搜索 > 我的容器)进行设置,那么所有4个文件层都将进入其中。但是,您可能已经在另一个主机上以图像的形式显示了前3层,在这种情况下,save会产生大量的开销。然后,您可以使用 出口进口,根据文档,它们只导出顶层文件层(换句话说,导出容器,而不导出下面的图像)。

有关图像、容器、文件层等的详细资料,请参阅 正式文件(例如 文件系统)。

如果您正在寻找一个“精确的状态”,包括执行状态,您可能需要使用 CRIU (检查点)。

给定一个 linux 主机,Docker 可以使用 CRIU 保存容器的执行状态。CRIU 仍处于“试验阶段”,你可以通过运行以下命令(在启用试验模式之后)来查看所有可能的命令:

docker checkpoint

您可以使用 --save-dir选项将检查点放在您选择的目录中。

然后你可以使用

docker start --checkpoint (checkpoint name) --checkpoint-dir (checkpoint directory)

来恢复检查站。

如果移动服务器,可能需要随身携带图像。

你可以阅读更多的文件: Https://docs.docker.com/engine/reference/commandline/checkpoint/