跳转到主要内容

检查点

检查点目前仅适用于 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