Docker容器迁移

时间:2017-02-27 14:12:03

标签: docker migration checkpoint

我尝试使用实验检查点功能来实现计算机之间的容器迁移。我在同一台计算机上找到了许多检查点和恢复的示例,但我只发现了有关在不同计算机之间迁移检查点的文档:

https://circleci.com/blog/checkpoint-and-restore-docker-container-with-criu/

但是,它使用的命令已过时,并且docker checkpoint恢复不再可用。而应使用docker start --checkpoint语法。我完成了我的用例如下:

主机1:运行一个docker容器,我在$ CHECKPOINT_FOLDER中的某个位置执行检查点,这是一个带有docker checkpoint create --checkpoint-dir=$CHECKPOINT_FOLDER $NAME checkpoint-$NAME的不同计算机之间的共享文件夹,其中$ NAME是正在运行的容器的名称(一个 - 在这种情况下为13)。

主机2:可以访问$ CHECKPOINT_FOLDER文件夹,我可以看到创建的文件夹。我运行docker start --checkpoint-dir $CHECKPOINT_FOLDER --checkpoint checkpoint-$NAME $NAME,其中$ NAME再次与在主机1(one-13)上运行的容器的名称相同。但是我收到了这个错误:

没有这样的容器:one-13

这让我觉得我必须在开始检查点之前创建一个容器但是,我该怎么做?是不是应该从检查点自动创建?如果没有,有没有办法将检查点传递给docker create命令?这个用例的工作流程是什么?

谢谢。

1 个答案:

答案 0 :(得分:0)

在目标主机中恢复容器之前,您必须创建一个容器:

 sudo docker create --name $NAME <container-image>

创建容器$ NAME是为了确保下载基本映像并分配磁盘空间,您可以检入/ var / lib / docker / containers /

然后,您可以使用$CHECKPOINT_FOLDER

中的共享转储文件将其还原
 sudo docker start --checkpoint=checkpoint-$NAME --checkpoint-dir=$CHECKPOINT_FOLDER $NAME

或特别是检查点名称

 sudo docker start --checkpoint=checkpoint-one-13 --checkpoint-dir=$CHECKPOINT_FOLDER $NAME