检查点

检查点目前仅适用于使用 root 用户启动的容器。因此,您必须以 root 身份运行示例容器。您可以使用 sudo -i 命令在运行前切换到 root 用户,而不是在每个命令前加上sudo。

  1. $ sudo podman run -dt -p 8080:80/tcp docker.io/library/httpd
  2. $ sudo podman ps

给容器设置检查点

给容器设置检查点会停止容器,同时将所有进程的状态写入磁盘。有了这个功能,容器可以稍后被恢复并保持与检查点完全相同状态继续运行。此功能需要系统上安装了 CRIU 3.11 或更高版本。

要检查点容器,请使用以下命令:

$ sudo podman container checkpoint <container_id>

恢复容器

仅可以从先前设置过检查点的容器中恢复容器。恢复的容器将继续以设置检查点时的相同状态运行。

要恢复容器,请使用以下命令:

  1. $ sudo podman container restore <container_id>

恢复后,容器将再次响应请求,就像在设置检查点时的一样。

  1. $ curl http://<IP_address>:8080

容器迁移

要将容器从一个主机迁移到另一个主机,需要在源系统的容器上进行设置检查点操作,然后将检查点转移到目标系统并在目标系统上进行恢复。在转移检查点时,可以指定输出文件。

在源系统上:

  1. $ sudo podman container checkpoint <container_id> -e /tmp/checkpoint.tar.gz
  2. $ scp /tmp/checkpoint.tar.gz <destination_system>:/tmp

在目标系统上

  1. $ sudo podman container restore -i /tmp/checkpoint.tar.gz

恢复之后,容器将再次响应请求,就像在检查点之前一样。这次容器将继续在目标系统上运行。