Docker容器迁移

Docker容器迁移,docker,migration,checkpoint,Docker,Migration,Checkpoint,我正在尝试使用实验性的检查点特性来实现机器之间的容器迁移。我在同一台机器上找到了许多检查点和恢复的示例,但我只找到了关于在不同机器之间迁移检查点的文档: 但是,它使用的命令已经过时,docker checkpoint restore不再可用。相反,应该使用docker start——检查点语法。我的用例如下所示: 主机1:有一个docker容器正在运行,我在$checkpoint\u文件夹中的某个位置执行检查点操作,该文件夹是不同机器之间的共享文件夹,dockercheckpoint crea

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

但是,它使用的命令已经过时,docker checkpoint restore不再可用。相反,应该使用docker start——检查点语法。我的用例如下所示:

主机1:有一个docker容器正在运行,我在$checkpoint\u文件夹中的某个位置执行检查点操作,该文件夹是不同机器之间的共享文件夹,docker
checkpoint create--checkpoint dir=$checkpoint\u FOLDER$NAME checkpoint-$NAME
,其中$NAME是正在运行的容器的名称(本例中为1-13)

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

无此类容器:1-13

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


谢谢。

在目标主机中还原容器之前,必须创建一个容器:

 sudo docker create --name $NAME <container-image>
或者特别是检查点名称

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

不幸的是,当运行docker start with checkpoint时,我从守护进程得到错误
错误响应:不支持自定义checkpointdir
-dir@MiguelMota:我在写这篇文章时使用了docker 17.03.2-ce,CRIU v3.8。如果您使用的是较新版本的docker,我认为checkpoint dir选项已被删除()。您可以忽略checkpointdir选项,让docker在默认位置存储。
 sudo docker start --checkpoint=checkpoint-one-13 --checkpoint-dir=$CHECKPOINT_FOLDER $NAME