4.16. 容器
Podman 支持拉取和推送 zstd 压缩的镜像
您可以拉取和推送使用 zstd 格式压缩的镜像。zstd 压缩比 gzip 效率更高,更快。它可以减少拉取和推送镜像所需的网络流量和存储量。
Jira:RHELPLAN-154313[1]
Podman 中的 Quadlet 现在可用
从 Podman v4.6 开始,您可以使用 Quadlet 从容器描述中自动生成一个 systemd 服务文件。Quadlets 可能比 podman generate systemd 命令更容易使用,因为描述侧重于相关的容器详情,且没有在 systemd 下运行容器的技术复杂性。请注意,Qadlets 仅适用于有根容器。
如需了解更多详细信息,请参阅 Quadlet 上游文档 和 使用 Quadlet 使 systemd 更好地用于 Podman 文章。
Jira:RHELPLAN-154431[1]
Container Tools 软件包已更新
现在提供更新的 Container Tools 软件包,其包括 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 文件类型标签和 ulimit 注解。 -
添加了一个新命令
podman secret exists,它验证具有指定名称的 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-154443[1]
Podman 现在支持 Podmansh 登录 shell
从 Podman v4.6 开始,您可以使用 Podmansh 登录 shell 管理用户访问权限和控制。要切换到 CGroups v2,请将 systemd.unified_cgroup_hierarchy=1 添加到内核命令行。配置用户的设置,以使用 /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: 革命性的登录 Shell。
Jira:RHELPLAN-163002[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-160659[1]