我们很高兴地宣布发布 Podman 5.6,其中包含大量重要的新功能和改进,可增强容器管理体验。此版本对 Quadlet 管理、增强的远程客户端功能以及众多生活质量改进进行了重大更新。
Quadlet 管理
Podman 5.6 中最重要的新增功能之一是新的 Quadlet 管理命令套件,它使使用 systemd 风格的容器单元变得比以往任何时候都更容易
podman quadlet install
– 为当前用户安装新的 Quadletpodman quadlet list
– 列出所有已安装的 Quadletpodman quadlet print
– 显示 Quadlet 文件的内容podman quadlet rm
– 删除现有 Quadlet
增强的 Quadlet 配置
这些命令简化了 Quadlet 工作流程,但目前它们仅适用于本地 Podman 安装(远程支持将在未来的版本中提供)。
Quadlet 单元在所有单元类型中都获得了显著的功能改进
容器单元 (.container)
- 现在可以指定不带值的环境变量,在运行时自动从主机检索值
Pod 单元 (.pod)
- 用于设置 pod 标签的新
Label=
键 - 用于配置 pod 退出行为的新
ExitPolicy=
键
镜像单元 (.image)
- 新的
Policy=
键用于控制拉取策略(总是拉取、仅当更新时拉取等)
网络单元 (.network)
- 新的
InterfaceName=
键用于指定自定义网络接口名称
机器和虚拟化增强
Swap 支持
podman machine init
命令现在支持 --swap
选项,允许您在虚拟机中启用和配置指定大小(以兆字节为单位)的交换空间。
Apple Silicon 改进
对于运行 macOS 15+ 的 M3+ 主机,当使用 libkrun
提供程序时,嵌套虚拟化现在默认启用,从而提高了性能和兼容性。
Kubernetes 集成改进
Podman 5.6 通过多项 podman kube play
改进,增强了 Kubernetes 兼容性
- 资源控制:新的注解
io.podman.annotations.cpuset/$ctrname
和io.podman.annotations.memory-nodes/$ctrname
允许精确的 CPU 核心和内存节点限制 - 生命周期管理:支持 Pod YAML 中的
lifecycle.stopSignal
字段,用于自定义容器停止信号 - 空 Pod 支持:修复了以前导致失败的空 Pod 处理问题
远程客户端增强
远程 Podman 客户端获得了显著的新功能,使其更接近本地安装的功能对等
- OCI 工件:完整的
podman artifact
命令套件用于与 OCI 工件交互 - 卷操作:
podman volume import
和podman volume export
命令 - 构建上下文:
podman build
的--build-context
选项支持
新命令选项和灵活性
卷创建
podman volume create
中用于设置所有权的新--uid
和--gid
选项
挂载增强
--mount
选项现在接受dest=
作为destination=
的别名--mount type=artifact
支持name=
选项,用于自定义工件文件名--tmpfs
支持新的noatime
选项,用于性能优化
Docker 兼容性
Podman 5.6 引入了 podman buildx inspect
命令,使从 Docker 过渡的用户更容易维护熟悉的工作流程。
BoltDB 弃用
作为持续改进的一部分,Podman 5.6 包含对仍在使用 BoltDB 数据库的安装的警告。BoltDB 将在 Podman 6.0 中移除。虽然这些警告默认情况下尚不可见(将在 5.7 中提供),但用户应开始使用新的数据库后端。
Apple Silicon 上的 Rosetta
由于最新 Linux 内核与 Apple Rosetta 之间存在不兼容性,我们不得不在 Podman 5.6 中默认禁用 Rosetta。机器翻译仍然由 QEMU 完成。有关 Rosetta 情况的总结,请参阅我的博客。
获取 Podman 5.6
Podman 5.6 现已通过所有标准分发渠道提供。有关完整的发行说明、安装说明和详细功能文档,请访问官方发布页面。
OCI 工件命令现在被认为是稳定的,这标志着 Podman 作为综合容器管理平台演进的又一个里程碑。
有关 Podman 5.6 和详细技术规范的更多信息,请参阅 GitHub 上的完整发行说明。
发表评论