如何暂停 Docker 容器,然后重新启动主机系统并取消暂停容器?

如何暂停 Docker 容器,然后重新启动主机系统并取消暂停容器?

需要重新启动主机操作系统,但如何保存正在运行的容器的状态,并在主机系统重新启动后从保存的点恢复容器?

答案1

配置 Docker 的实验选项:

$ sudo nano /etc/docker/daemon.json

添加

{
"experimental": true
}

按 CTRL+X,选择 Y 并按 Enter 保存新文件。

或者

$ sudo echo '{"experimental": true}' >> /etc/docker/daemon.json

重启docker服务:

$ sudo service docker restart

检查与

$ docker version

如果确实启用了实验。

安装 CRIU 包

$ sudo apt-get install criu

在 CRIU 上使用 Docker 检查点尝试简单的场景

docker run --security-opt=seccomp:unconfined --name cr -d busybox /bin/sh -c 'i=0; while true; do echo $i; i=$(expr $i + 1); sleep 1; done'

检查值:

docker logs cr

为容器创建检查点:

docker checkpoint create  --leave-running=true cr checkpoint0

让容器运行一段时间并再次检查日志

$ docker logs cr

现在停止容器:

$ docker stop cr

并从检查点重新启动/重新创建容器:

docker start --checkpoint checkpoint0 cr

检查日志:

docker logs cr

您会发现日志在创建检查点的值处恢复。

https://technology.amis.nl/2018/04/08/first-steps-with-docker-checkpoint-to-create-and-restore-snapshots-of-running-containers/

相关内容