11.8. 使用 Podman 自动更新容器
podman auto-update
命令允许您根据自动更新策略自动更新容器。当容器镜像在注册中心中被更新时,podman auto-update
命令会更新服务。要使用自动更新,必须使用 --label "io.containers.autoupdate=image"
标签创建容器,并在 podman generate systemd --new
命令生成的 systemd
单元中运行。
Podman 会搜索 "io.containers.autoupdate"
标签设为 "image"
的正在运行的容器,并与容器注册中心进行通信。如果镜像已更改,Podman 会重启对应的 systemd
单元来停止旧容器,并使用新镜像创建新容器。因此,容器、其环境和所有依赖项都会被重启。
从 Podman v4.6 开始,您可以使用描述如何以类似于常规 systemd
单元文件的格式运行容器的 Quadlets,并在 systemd
下隐藏运行容器的复杂性。
先决条件
-
container-tools
元数据包已安装。
流程
启动一个基于
registry.access.redhat.com/ubi10/ubi-init
镜像的myubi
容器:podman run --label "io.containers.autoupdate=image" \ --name myubi -dt registry.access.redhat.com/ubi10/ubi-init top
# podman run --label "io.containers.autoupdate=image" \ --name myubi -dt registry.access.redhat.com/ubi10/ubi-init top bc219740a210455fa27deacc96d50a9e20516492f1417507c13ce1533dbdcd9d
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:列出正在运行或已退出的容器:
podman ps -a
# podman ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 76465a5e2933 registry.access.redhat.com/10/ubi-init:latest top 24 seconds ago Up 23 seconds ago myubi
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
myubi
容器生成一个systemd
单元文件:podman generate systemd --new --files --name myubi
# podman generate systemd --new --files --name myubi /root/container-myubi.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将单元文件复制到
/usr/lib/systemd/system
中,以便以 root 用户身份安装它:cp -Z ~/container-myubi.service /usr/lib/systemd/system
# cp -Z ~/container-myubi.service /usr/lib/systemd/system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新载入
systemd
管理器配置:systemctl daemon-reload
# systemctl daemon-reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动并检查容器的状态:
systemctl start container-myubi.service systemctl status container-myubi.service
# systemctl start container-myubi.service # systemctl status container-myubi.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 自动更新容器:
podman auto-update
# podman auto-update
Copy to Clipboard Copied! Toggle word wrap Toggle overflow