gpt4 book ai didi

Docker容器迁移

转载 作者:行者123 更新时间:2023-12-02 06:44:22 26 4
gpt4 key购买 nike

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

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

但是,它使用的命令已过时,并且 docker 检查点恢复不再可用。相反,应该使用 docker start --checkpoint 语法。我的用例如下:

主机 1:有一个正在运行的 docker 容器,我在 $CHECKPOINT_FOLDER 中的某个位置创建了一个检查点,该文件夹是不同计算机之间使用 docker 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 (one-13) 上运行的容器的名称。但是我收到此错误:

没有这样的容器:one-13

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

谢谢。

最佳答案

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

 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

关于Docker容器迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42487859/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com