跳至主要内容

检查点

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

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

$ curl http://<IP_address>:8080