22.2. 使用容器恢复减少启动时间
您可以使用容器迁移来减少容器的启动时间,这需要一定时间进行初始化。通过使用检查点,您可以在同一个主机上或不同的主机上多次恢复容器。本例是基于 在本地创建和恢复容器检查点 的容器。
先决条件
-
container-tools
元数据包已安装。
流程
创建容器的检查点,并将检查点镜像导出到
tar.gz
文件中:# podman container checkpoint criu-test --export /tmp/chkpt.tar.gz
从
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
)选项为从导出的检查点恢复的容器指定一个新名称。显示每个容器的 ID 和名称:
# podman ps -a --format "{{.ID}} {{.Names}}" a8b2e50d463c counter3 faabc5c27362 counter2 2ce648af11e5 counter1
显示每个容器的 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
将请求发送到每个容器:
#️ curl 10.88.0.248:8080 4 #️ curl 10.88.0.249:8080 4 #️ curl 10.88.0.250:8080 4
请注意,在所有情况下结果都是
4
,因为您正在使用从同一检查点恢复的不同容器。
使用这种方法,您可以快速启动进行了初始检查点的容器的有状态副本。