我正在尝试使用实验性的检查点功能来在不同机器之间实现容器迁移。我找到了许多关于在同一台机器上进行检查点和恢复的示例,但是我只找到了这篇文档,介绍如何在不同机器之间迁移检查点:
https://circleci.com/blog/checkpoint-and-restore-docker-container-with-criu/
然而,它使用的命令已经过时了,docker checkpoint restore不再可用。应该使用docker start --checkpoint语法。我已经按如下方式完成了我的用例:主机1:有一个运行的docker容器,我在$CHECKPOINT_FOLDER位置进行检查点,这是不同机器上的共享文件夹,其中包含docker
checkpoint create --checkpoint-dir=$CHECKPOINT_FOLDER $NAME checkpoint-$NAME
,其中$NAME是正在运行的容器的名称(在本例中为one-13)。主机2:可以访问$CHECKPOINT_FOLDER文件夹,我可以看到创建的检查点。我运行
docker start --checkpoint-dir $CHECKPOINT_FOLDER --checkpoint checkpoint-$NAME $NAME
,其中$NAME再次是主机1上正在运行的容器的相同名称(one-13)。但是我收到以下错误:
No such container: one-13
这使我认为我必须在启动检查点之前创建一个容器,但是如何做到呢?难道不应该从检查点自动创建吗?如果不是,是否有一种方法将检查点传递给docker create命令?这种情况下的工作流程是什么?谢谢。