4.21. 容器
Podman 支持拉取和推送使用 zstd 压缩的镜像
您可以拉取和推送使用 zstd
格式压缩的镜像。zstd 压缩效率比 gzip 更高,更快。它可以减少拉取和推送镜像所需的网络流量和存储量。
Jira:RHELPLAN-154314[1]
Podman 中的 Quadlet 现在可用
从 Podman v4.6 开始,您可以使用 Quadlet 从容器描述中自动生成 systemd
服务文件。Quadlets 比 podman generate systemd
命令更容易使用,因为描述侧重于相关的容器详情,且没有在 systemd
下运行容器的技术复杂性。
如需了解更多详细信息,请参阅 Quadlet 上游文档和使 systemd 更好地用于带有 Quadlet 的 Podman 文章。
Jira:RHELPLAN-154432[1]
Container Tools 软件包已更新
更新的 Container Tools RPM 元软件包现已正式发布,其包括 Podman、Buildah、Skopeo、crun 和 runc 工具,现在可用。与之前的版本相比,这个版本应用了一系列 bug 修复和增强。
Podman v4.6 中的显著变化包括:
-
podman kube play
命令现在支持--configmap=<path>
选项,为 Kubernetes YAML 文件提供 pod 容器中使用的环境变量。 -
podman kube play
命令现在支持--configmap
选项的多个 Kubernetes YAML 文件。 -
podman kube play
命令现在支持存活度探测中的 containerPort 名称和端口号。 -
podman kube play
命令现在将 ctrName 作为别名添加到 pod 网络。 -
podman kube play
和podman kube generate
命令现在支持 SELinux filetype 标签和 ulimit 注解。 -
添加了一个新的命令
podman secret
,它验证具有指定名称的 secret 是否存在。 -
podman create
,podman run
,podman pod create
和podman pod clone
命令现在支持一个新选项--shm-size-systemd
,其允许为特定于 systemd 的挂载限制 tmpfs 大小。 -
podman create
和 podman run 命令现在支持一个新选项--security-opt label=nested
,它允许 SELinux 在受限容器中进行标记。 - Podman 现在支持为 pod 内运行的容器进行自动更新。
-
Podman 现在可以使用 SQLite 数据库作为后端来提高稳定性。默认保留 BoltDB 数据库。您可以通过在
containers.conf
文件中设置database_backend
字段来选择数据库。 -
Podman 现在支持 Quadlets 从容器描述中自动生成一个
systemd
服务文件。该描述侧重于相关的容器详情,隐藏了在systemd
下运行容器的技术复杂性。
有关显著变化的详情,请查看 上游发行注记。
Jira:RHELPLAN-154438[1]
Podman 现在支持 Podmansh 登录 shell
从 Podman v4.6 开始,您可以使用 Podmansh
登录 shell 管理用户访问权限和控制。将您的设置配置为使用 /usr/bin/podmansh
命令作为登录 shell ,而不是标准 shell 命令,例如 /usr/bin/bash
。当用户登录到系统设置时,podmansh
命令将用户的会话运行到名为 podmansh
的 Podman 容器中。用户登录的容器是使用 Quadlet 文件定义的,这些文件创建在 /etc/containers/systemd/users/
目录中。在这些文件中,将 [Container]
部分中的 ContainerName
字段设置为 podmansh
。当用户会话启动时,systemd 会自动启动 podmansh
,并继续运行直到所有用户会话退出为止。
如需更多信息,请参阅 Podman v4.6.0 引入了 Podmansh:一个革命性的 Login Shell。
Jira:RHELPLAN-163003[1]
现在,可提供带有 Fulcio 和 Rekor 的 sigstore 签名的客户端
有了 Fulcio 和 Rekor 服务器,您现在可以根据 OpenID Connect (OIDC)服务器身份验证使用短期证书来创建签名,而不是手动管理私钥。以前作为技术预览提供的带有 Fulcio 和 Rekor 的 sigstore 签名的客户端现在完全支持。这个添加的功能只是客户端侧支持,不包括 Fulcio 或 Rekor 服务器。
在 policy.json
文件中添加 fulcio
部分。要签署容器镜像,请使用 podman push --sign-by-sigstore=file.yml
或 skopeo copy --sign-by-sigstore=file.yml
命令,其中 file.yml
是 sigstore 签名参数文件。
要验证签名,请在 policy.json
文件中添加 fulcio
部分和 rekorPublicKeyPath
或 rekorPublicKeyData
字段。如需更多信息,请参阅 containers-policy.json
手册页。
Jira:RHELPLAN-160660[1]
pasta
网络模式现在可用
从 Podman v4.4.1 开始,您可以使用 pasta
网络模式。它是默认网络模式 slirp4netns
的高性能替换,支持 IPv6 转发。要选择 pasta
网络模式,请安装 passt
软件包,以使用带有--network=pasta
选项的 podman run
命令。使用 Podman v4.6,您可以使用 [network]
部分下的 default_rootless_network_cmd
字段在 /etc/containers/containers.conf
配置文件中设置默认的无根网络模式。
Jira:RHELDOCS-16240[1]
UBI 9 微容器镜像不再包含 tzdata
安装的 zoneinfo
有了此更新,tzdata
软件包提供的时区信息不再包含在 UBI 9 Micro 容器镜像中,从而减少了镜像大小。UBI 9 Minimal 和 UBI 9 微容器是仅 UTC 的,用户应重新安装 tzdata
软件包,以获得完整的 zoneinfo
(如果需要的话)。