4.18. 容器
新的 podman
RHEL 系统角色现在可用
从 Podman 4.2 开始,您可以使用 podman
系统角色来管理 Podman 配置、容器以及运行 Podman 容器的 systemd
服务。
Jira:RHELPLAN-118698
Podman 现在支持审计事件
从 Podman v4.4 开始,您可以直接从单个事件和 journald
条目中收集关于容器的所有相关信息。要启用 Podman 审计,请修改 container.conf
配置文件,并将 events_container_create_inspect_data=true
选项添加到 [engine]
部分中。数据采用 JSON 格式,与 podman container inspect
命令的格式相同。如需更多信息,请参阅 如何在 Podman 4.4 中使用新的容器事件和审计功能。
Jira:RHELPLAN-136601
Container Tools 软件包已更新
现在提供更新的 Container Tools 软件包,其包括 Podman、Buildah、Skopeo、crun 和 runc 工具。与之前的版本相比,这个版本应用了一系列 bug 修复和增强。
Podman v4.4 中的显著变化包括:
- 引入了 Quadlet,这是一个新的 systemd 生成器,它可使用 Podman 轻松创建和维护 systemd 服务。
-
添加了一个新命令
podman network update
,它会更新容器和 pod 的网络。 -
添加了一个新命令
podman buildx version
,它会显示 buildah 版本。 - 容器现在可以启动健康检查,允许运行命令来确保在激活常规健康检查前完全启动容器。
-
使用
podman --dns
命令支持自定义 DNS 服务器选择。 - 现在,提供使用 Fulcio 和 Rekor 创建并验证 sigstore 签名。
- 改进了与 Docker 的兼容性(新选项和别名)。
-
改进了 Podman 的 Kubernetes 集成 - 命令
podman kube generate
和podman kube play
现在可用,替换了podman generate kube
和podman play kube
命令。podman generate kube
和podman play kube
命令仍可用,但建议使用新的podman kube
命令。 -
systemd 管理的由
podman kube play
命令创建的 pod 现在与 sd-notify 集成,使用io.containers.sdnotify
注解(或对特定容器使用io.containers.sdnotify/$name
)。 -
现在,由
podman kube play
创建的 systemd 管理的 pod 可以使用io.containers.auto-update
注解(或使用特定容器的io.containers.auto-update/$name
)自动更新。
Podman 已升级至版本 4.4,要了解有关显著变化的更多信息,请参阅 上游发行注记。
Jira:RHELPLAN-136608
Aardvark 和 Netavark 现在支持自定义 DNS 服务器选择
Aardvark 和 Netavark 网络堆栈现在支持容器的自定义 DNS 服务器选择,而不是主机上的默认 DNS 服务器。您有两个用于指定自定义 DNS 服务器的选项:
-
在
containers.conf
配置文件中添加dns_servers
字段。 -
使用新的
--dns
Podman 选项指定 DNS 服务器的 IP 地址。
--dns
选项会覆盖 container.conf
文件中的值。
Jira:RHELPLAN-138025
Skopeo 现在支持生成 sigstore 密钥对
您可以使用 skopeo generate-sigstore-key
命令生成一个 sigstore 公钥/私钥对。如需更多信息,请参阅 skopeo-generate-sigstore-key
手册页。
Jira:RHELPLAN-151481
Toolbox 现在可用
有了 toolbox
工具,您可以在系统上使用容器化的命令行环境,而无需直接安装故障排除工具。Toolbox 构建在 Podman 和其他来自 OCI 的标准容器技术之上。如需更多信息,请参阅 toolbx。
Jira:RHELPLAN-150266
提供签名镜像的多个可信的 GPG 密钥功能
/etc/containers/policy.json
文件支持一个新的 keyPaths
字段,该字段接受一个包含可信密钥的文件的列表。因此,在默认配置中现在接受使用红帽正式发行(GA)和 Beta GPG 密钥签名的容器镜像。
例如:
"registry.redhat.io": [ { "type": "signedBy", "keyType": "GPGKeys", "keyPaths": ["/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release", "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta"] } ]
Jira:RHELPLAN-118470
RHEL 8 延长更新支持(EUS)
RHEL Container Tools 现在在 RHEL 8 延长更新支持(EUS)版本中被支持。有关 Red Hat Enterprise Linux EUS 的更多信息,请参阅 容器工具 AppStream - 内容可用性,Red Hat Enterprise Linux (RHEL) 延长更新支持(EUS)概述。
Jira:RHELPLAN-151121
sigstore 签名现在可用
从 Podman 4.2 开始,您可以使用容器镜像签名的 sigstore 格式。sigstore 签名会与容器镜像一起存储在容器注册中心 ,而无需有单独的签名服务器来存储镜像签名。
Jira:RHELPLAN-75165
Podman 现在支持预执行钩子
位于 /usr/libexec/podman/pre-exec-hooks
和 /etc/containers/pre-exec-hooks
目录中的 root 拥有的插件脚本定义了对容器操作的精细控制,特别是阻止了未授权的操作。
/etc/containers/podman_preexec_hooks.txt
文件必须由管理员创建,并可为空。如果 /etc/containers/podman_preexec_hooks.txt
不存在,则不会执行插件脚本。如果所有插件脚本都返回零值,则执行 podman
命令,否则 podman
命令将退出,并具有继承的退出码。
红帽建议使用以下命名约定以便以正确的顺序执行脚本:DDD-plugin_name.lang
,如 010-check-group.py
。请注意,插件脚本在创建时是有效的。在插件脚本之前创建的容器不会受到影响。
Bugzilla:2119200