22.2. 使用容器恢复减少启动时间

您可以使用容器迁移来减少容器的启动时间,这需要一定时间进行初始化。通过使用检查点,您可以在同一个主机上或不同的主机上多次恢复容器。本例是基于 在本地创建和恢复容器检查点 的容器。

先决条件

  • container-tools 元数据包已安装。

流程

  1. 创建容器的检查点,并将检查点镜像导出到 tar.gz 文件中:

    # podman container checkpoint criu-test --export /tmp/chkpt.tar.gz
  2. tar.gz 文件中恢复容器:

    # podman container restore --import /tmp/chkpt.tar.gz --name counter1
    # podman container restore --import /tmp/chkpt.tar.gz --name counter2
    # podman container restore --import /tmp/chkpt.tar.gz --name counter3

    --name(-n)选项为从导出的检查点恢复的容器指定一个新名称。

  3. 显示每个容器的 ID 和名称:

    # podman ps -a --format "{{.ID}} {{.Names}}"
    a8b2e50d463c counter3
    faabc5c27362 counter2
    2ce648af11e5 counter1
  4. 显示每个容器的 IP 地址:

    #️ podman inspect counter1 --format "{{.NetworkSettings.IPAddress}}"
    10.88.0.248
    
    #️ podman inspect counter2 --format "{{.NetworkSettings.IPAddress}}"
    10.88.0.249
    
    #️ podman inspect counter3 --format "{{.NetworkSettings.IPAddress}}"
    10.88.0.250
  5. 将请求发送到每个容器:

    #️ curl 10.88.0.248:8080
    4
    #️ curl 10.88.0.249:8080
    4
    #️ curl 10.88.0.250:8080
    4

    请注意,在所有情况下结果都是 4,因为您正在使用从同一检查点恢复的不同容器。

使用这种方法,您可以快速启动进行了初始检查点的容器的有状态副本。