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 元数据包已安装。

流程

  1. 启动一个基于 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
    bc219740a210455fa27deacc96d50a9e20516492f1417507c13ce1533dbdcd9d
    Copy to Clipboard Toggle word wrap
  2. 可选:列出正在运行或已退出的容器:

    # 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 Toggle word wrap
  3. myubi 容器生成一个 systemd 单元文件:

    # podman generate systemd --new --files --name myubi
    /root/container-myubi.service
    Copy to Clipboard Toggle word wrap
  4. 将单元文件复制到 /usr/lib/systemd/system 中,以便以 root 用户身份安装它:

    # cp -Z ~/container-myubi.service /usr/lib/systemd/system
    Copy to Clipboard Toggle word wrap
  5. 重新载入 systemd 管理器配置:

    # systemctl daemon-reload
    Copy to Clipboard Toggle word wrap
  6. 启动并检查容器的状态:

    # systemctl start container-myubi.service
    # systemctl status container-myubi.service
    Copy to Clipboard Toggle word wrap
  7. 自动更新容器:

    # podman auto-update
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat