检查点
检查点目前仅适用于使用 root 用户启动的容器。因此,您必须以 root 身份运行示例容器。您可以使用 sudo -i
命令在运行前切换到 root 用户,而不是在每个命令前加上sudo。
$ 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.gz
$ scp /tmp/checkpoint.tar.gz <destination_system>:/tmp
在目标系统上
$ sudo podman container restore -i /tmp/checkpoint.tar.gz
恢复之后,容器将再次响应请求,就像在检查点之前一样。这次容器将继续在目标系统上运行。