搜索

4.17. 容器

download PDF

Podman 现在支持 containers.conf 模块

您可以使用 Podman 模块来加载预定的一组配置。Podman 模块是 Tom 的 Obvious Minimal Language (TOML)格式的 containers.conf 文件。

这些模块位于以下目录或其子目录中:

  • 对于无根用户: $HOME/.config/containers/containers.conf.modules
  • 对于 root 用户: /etc/containers/containers.conf.modules,或 /usr/share/containers/containers.conf.modules

您可以使用 podman --module <your_module_name > 命令按需加载模块,以覆盖系统和用户配置文件。使用模块涉及以下事实:

  • 您可以使用 --module 选项多次指定模块。
  • 如果 <your_module_name > 是绝对路径,则配置文件将直接加载。
  • 相对路径相对于前面提到的三个模块目录解析。
  • $HOME 中的模块覆盖 /etc//usr/share/ 目录中的模块。

如需更多信息,请参阅 上游文档

Jira:RHELPLAN-167829[1]

Container Tools 软件包已更新

更新的 Container Tools RPM 元软件包现已正式发布,其包括 Podman、Buildah、Skopeo、crun 和 runc 工具,现在可用。与之前版本相比,重要的程序错误修复和增强包括:

Podman v4.9 中的显著变化:

  • 现在,您可以使用 podman --module <your_module_name > 命令来按需加载模块,并覆盖系统和用户配置文件。
  • 添加了一个新的 podman farm 命令,其中包含一组 create,set,remove, 和 update 子命令。使用这些命令,您可以将构建到为不同架构运行 podman 的机器。
  • 添加了一个新的 podman-compose 命令,它使用 Docker compose 等外部 compose 提供者运行组合工作负载。
  • podman build 命令现在支持 --layer-label--cw 选项。
  • podman generate systemd 命令已弃用。使用 Quadlet 在 systemd 下运行容器和 pod。
  • podman build 命令现在支持带有 HereDoc 语法的 Containerfiles
  • podman machine initpodman machine set 命令现在支持一个新的 --usb 选项。使用这个选项允许 QEMU 提供商的 USB 透传。
  • podman kube play 命令现在支持新的 --publish-all 选项。使用此选项公开主机上的所有 containerPorts。

有关显著变化的更多信息,请参阅 上游发行注记

Jira:RHELPLAN-167796[1]

Podman v4.9 RESTful API 现在显示进度数据

在这个版本中,Podman v4.9 RESTful API 现在会在拉取镜像或将镜像推送到 registry 时显示进度数据。

Jira:RHELPLAN-167823[1]

SQLite 现在作为 Podman 的默认数据库后端被完全支持

在 Podman v4.9 中,Podman 的 SQLite 数据库后端(以前作为技术预览提供)现已获得全面支持。SQLite 数据库在使用容器元数据时提供更高的稳定性、性能和一致性。SQLite 数据库后端是 RHEL 9.4 的新安装的默认后端。如果您从以前的 RHEL 版本升级,则默认后端为 BoltDB。

如果您使用 containers.conf 文件中的 database_backend 选项显式配置了数据库后端,则 Podman 将继续使用指定的后端。

Jira:RHELPLAN-168180[1]

Containerfile 现在支持多行说明

您可以使用 Containerfile 文件中的多行 HereDoc 指令(Here Document 表示法)来简化此文件,并减少执行多个 RUN 指令导致的镜像层数。

例如,原始 Containerfile 可以包含以下 RUN 指令:

RUN dnf update
RUN dnf -y install golang
RUN dnf -y install java

您可以使用 HereDoc 表示法,而不是多个 RUN 指令:

RUN <<EOF
dnf update
dnf -y install golang
dnf -y install java
EOF

Jira:RHELPLAN-168185[1]

Podman 现在支持从主机分配 USB 设备到 QEMU 虚拟机

使用 podman machine 命令,您现在可以通过 USB 透传将主机中的 USB 设备分配给 QEMU 虚拟机(VM)。

在将 USB 设备连接到计算机之前,USB 设备需要属于您的用户组。如果多个 USB 设备具有相同的供应商和产品 ID,则会分配第一个可用的设备。请注意,这个功能只支持基于 QEMU 技术的虚拟机。

  • 要将 USB 设备从主机分配给 QEMU 虚拟机,请运行:

    $ podman machine init --usb vendor=13d3,product=5406
  • 要使用总线和设备号从主机分配 USB 设备到 QEMU 虚拟机,请运行:

    $ podman machine init --usb bus=1,devnum=3

    请注意,如果您使用总线和设备号指定 USB 设备,则这些值每次重新引导时可能会更改。

Jira:RHELPLAN-168183[1]

gvisor-tap-vsock 软件包现在可用

gvisor-tap-vsock 软件包是 libslirp 用户模式网络库和 VPNKit 工具和服务的替代选择。它使用 Go 编写,基于 gVisor 的网络堆栈。与 libslirp 相比,gvisor-tap-vsock 库支持可配置的 DNS 服务器和动态端口转发。您可以将 gvisor-tap-vsock 网络库用于 podman-machine 虚拟机。目前,Red Hat Enterprise Linux 不支持用于管理虚拟机的 podman machine 命令。

Jira:RHELPLAN-167396[1]

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.