我正在尝试使用实验性的检查点功能来实现机器之间的容器迁移。我在同一台机器上找到了许多检查点和恢复的例子,但我只找到了关于在不同机器之间迁移检查点的文档:
https://circleci.com/blog/checkpoint-and-restore-docker-container-with-criu/
但是,它使用的命令已过时,docker检查点恢复不再可用。相反,应该使用docker start --checkpoint语法。我的用例如下:
主机1:有一个停靠容器,我在$CHECKPOINT_FOLDER中的一个位置运行了一个检查点,这是具有停靠checkpoint create --checkpoint-dir=$CHECKPOINT_FOLDER $NAME checkpoint-$NAME的不同机器之间的共享文件夹,其中$NAME是正在运行的容器的名称(在本例中为1-13)。
主机2:可以访问$CHECKPOINT_FOLDER文件夹,我可以看到创建的文件夹。我运行docker start --checkpoint-dir $CHECKPOINT_FOLDER --checkpoint checkpoint-$NAME $NAME,其中$NAME与在主机1(1-13)上运行的容器的名称相同。然而,我得到了这个错误:
没有这样的容器:1-13
这让我认为我必须在启动检查点之前创建一个容器,但是,我该如何做呢?不应该从检查点自动创建吗?如果没有,有没有办法将检查点传递给docker create命令?这个用例的工作流程是什么?
谢谢。
发布于 2018-03-18 11:34:19
在目标主机上恢复容器之前,您需要创建一个容器:
sudo docker create --name $NAME <container-image>创建容器容器是为了确保下载了基本镜像并分配了磁盘空间,您可以在/var/lib/ $NAME /$NAME/中签入。
然后,您可以使用$CHECKPOINT_FOLDER中的共享转储文件恢复它
sudo docker start --checkpoint=checkpoint-$NAME --checkpoint-dir=$CHECKPOINT_FOLDER $NAME或特别使用检查点名称
sudo docker start --checkpoint=checkpoint-one-13 --checkpoint-dir=$CHECKPOINT_FOLDER $NAMEhttps://stackoverflow.com/questions/42487859
复制相似问题