检查点
检查点目前仅适用于 root 容器。因此,您必须以 root 身份运行示例容器。您可以在每个命令前加上 sudo,也可以事先通过 sudo -i 切换到 root 用户。
sudo podman run -dt -p 8080:80/tcp docker.io/library/httpd
sudo podman ps
为容器设置检查点
为容器设置检查点会停止该容器,同时将容器中所有进程的状态写入磁盘。这样,容器之后可以被恢复,并从检查点的确切时间点继续运行。此功能要求系统上安装了 CRIU 3.11 或更高版本。
要为容器设置检查点,请使用
sudo podman container checkpoint <container_id>
恢复容器
只有之前设置过检查点的容器才能被恢复。恢复后的容器将从其被设置检查点的确切时间点继续运行。
要恢复容器,请使用
sudo podman container restore <container_id>
恢复后,容器将像设置检查点之前一样再次响应请求。
curl http://<IP_address>:8080
迁移容器
要将容器从一台主机实时迁移到另一台主机,需要在迁移的源系统上为容器设置检查点,将其传输到目标系统,然后在目标系统上恢复它。传输检查点时,可以指定一个输出文件。
在源系统上
sudo podman container checkpoint <container_id> -e /tmp/checkpoint.tar.zst
scp /tmp/checkpoint.tar.zst <destination_system>:/tmp
在目标系统上
sudo podman container restore -i /tmp/checkpoint.tar.zst
恢复后,容器将像设置检查点之前一样再次响应请求。这一次,容器将在目标系统上继续运行。
curl http://<IP_address>:8080