4.23. 容器

Podman 现在支持安全简短名称

现在可以在 [aliases] 表中的 registries.conf 文件中配置镜像的短名称别名。简短名称模式为:

  • Enforcing:如果在镜像拉取过程中找不到匹配的别名,则 Podman 会提示用户选择一个非限定 registry。如果成功拉取了所选镜像,Podman 会自动在 $HOME/.cache/containers/short-name-aliases.conf 文件(rootless 用户)和 /var/cache/containers/short-name-aliases.conf 中记录一个新的短名称别名。如果无法提示用户(例如,stdin 或 stdout 而不是 TTY),则 Podman 会失败。请注意,如果两者都指定了相同的别名,则short-name-aliases.conf文件优先于 registries.conf 文件。
  • Permissive:与 enforcing 模式类似,但如果用户无法提示,Podman 不会失败。相反,Podman 会按照指定顺序搜索所有非限定 registry。请注意,没有记录别名。

例如:

unqualified-search-registries=["registry.fedoraproject.org", "quay.io"]

[aliases]

"fedora"="registry.fedoraproject.org/fedora"

(JIRA:RHELPLAN-74542)

container-tools 模块的更改

container-tools 模块包含 Podman、Buildah、Skopeo 和 runc 工具。滚动流,由 RHEL 8 中的 container-tools:rhel8 流表示,在 RHEL 9 中命名为 container-tools:latest。与 RHEL 8 类似,容器工具的稳定版本也会以数字化的流(如 3.0)提供。

有关 Container Tools Application Stream 的更多信息,请参阅 Container Tools AppStream - Content Availability

(JIRA:RHELPLAN-73678)

containers-common 软件包现在可用

containers-common 软件包已添加到 container-tools:latest 模块中。containers-common 软件包包含常见配置文件和容器工具生态系统文档,如 Podman、Buildah 和 Skopeo。

(JIRA:RHELPLAN-77549)

使用新软件包更新容器镜像

例如,要使用最新的软件包更新 registry.access.redhat.com/rhel9 容器镜像,请使用以下命令:

# podman run -it registry.access.redhat.com/rhel9
# dnf update -y && rm -rf /var/cache/dnf

要安装特定的 <package>,请输入:

# dnf install <package>

如需更多信息,请参阅 将软件添加到正在运行的 UBI 容器中

请注意,对于 RHEL 9,在镜像中更新或安装新软件包需要您在授权主机上运行。您可以使用 Red Hat Enterprise Linux Developer 订阅进行单独订阅,以免费获得授权存储库的访问权限。

如需更多信息,请参阅 No-cost Red Hat Enterprise Linux 独立开发人员订阅:常见问题.

(JIRA:RHELPLAN-84168)

container-tools meta-package 已更新

包含 Podman、Buildah、Skopeo 和 runc 工具的container-tools RPM 元软件包可用。与之前的版本相比,这个版本提供了程序错误修正和增强的列表。

(JIRA:RHELPLAN-118914)

podman-py 软件包现在可用

podman-py 软件包已添加到 container-tools:3.0 stable 模块流和 container-tools:latest 模块中。podman-py 软件包是要使用的 Podman RESTful API 的绑定库。

(BZ#1975462)

控制组群版本 2 现已正式发布

之前版本的控制组 1(cgroups v1)会导致各种应用程序的性能问题。最新版本的控制组 2(cgroups v2)可让系统管理员限制任何应用程序的资源,而不造成性能问题。

这个新版本的控制组群(cgroup v2)可在 RHEL 8 中启用,在 RHEL 9 中被默认启用。

(JIRA:RHELPLAN-73697)

container-tools meta-package 现已正式发布

RHEL 9 提供了 container-tools RPM meta-package 包括 Podman、Buildah、Skopeo、CRIU、Udica 和所有必需库。RHEL 9 不提供 stable 流。要获得对 Podman 的稳定访问、Buildah、Skopeo 等,请使用 RHEL EUS 订阅。

要安装 container-tools meta-package,请输入:

# dnf install container-tools

(BZ#2000871)

现在,内核中的原生覆盖文件系统支持

覆盖文件系统支持现在可从内核 5.11 获得。非 root 用户即使在无根用户(作为用户)时,也具有原生的覆盖性能。因此,这个增强为希望在不需要绑定挂载的情况下使用 overlayfs 的非 root 用户提供更好的性能。

(JIRA:RHELPLAN-99892)

NFS 存储现在可用

现在,如果您的文件系统支持 xattr,则可以使用 NFS 文件系统作为容器和镜像的后端存储。

(JIRA:RHELPLAN-74543)

container-tools meta-package 已更新

container-tools meta-package 包括 Podman、Buildah、Skopeo、CRIU、Udica 以及所有必需的库。与之前的版本相比,这个版本提供了程序错误修正和增强的列表。

主要变更包括:

  • 由于网络堆栈的变化,Podman v3 和更早版本所创建的容器在 Podman v4.0 中不可用
  • 原生覆盖文件系统可作为无根用户使用
  • 现在容器中支持 NFS 存储
  • 控制组群版本 2(cgroup v2)被默认启用
  • 除非所有容器被销毁并重新创建,否则不支持从 Podman v4 降级到 v3

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

(JIRA:RHELPLAN-99889)

crun 容器运行时现在为默认

crun 容器运行时现在是默认的运行时。crun 容器运行时支持注解,允许容器访问非根用户的额外组。这对设置 setgid 或用户只能访问组的目录中的卷挂载有用。crunrunc 运行时都完全支持 cgroup v2

(JIRA:RHELPLAN-99890)

控制组群版本 2 现已正式发布

以前的控制组群版本 cgroup 版本 1(cgroup v1)会导致各种应用程序出现性能问题。最新版本的控制组 cgroup 版本 2(cgroup v2)可让系统管理员为任何应用程序限制资源,而不会造成性能问题。

在 RHEL 9 中,cgroup v2 被默认启用。

(JIRA:RHELPLAN-75322)

通用基础镜像现在包括在 Docker Hub 中

在以前的版本中,通用基础镜像只包括在 Red Hat 容器目录中。在这个版本中,Docker Hub 中也提供了通用基础镜像作为 Verified Publisher 镜像

(JIRA:RHELPLAN-100032)

openssl 容器镜像现在可用

openssl 镜像提供了一个 openssl 命令行工具,用于使用 OpenSSL 加密库的不同功能。使用 OpenSSL 库,您可以生成私钥、创建证书签名请求(CSR)并显示证书信息。

openssl 容器镜像位于这些存储库中:

  • registry.redhat.io/rhel9/openssl
  • registry.access.redhat.com/ubi9/openssl

(JIRA:RHELPLAN-100034)

Netavark 网络堆栈现在可用

Netavark 堆栈是容器的网络配置工具。在 RHEL 9 中,Netavark 堆栈被完全支持并启用。

此网络堆栈具有以下功能:

  • 创建、管理和删除网络接口,包括网桥和 MACVLAN 接口
  • 配置防火墙设置,如网络地址转换(NAT)和端口映射规则
  • IPv4 和 IPv6
  • 改进了多个网络中容器的功能

(JIRA:RHELPLAN-101141)

Podman 现在支持使用 YAML 文件自动构建和自动运行的 pod

podman play kube 命令会使用 YAML 文件自动构建并运行带有 pod 中多个容器的多个 pod。

(JIRA:RHELPLAN-108830)

Podman 现在可以从 IdM 提供子UID 和 subGID 范围

subUID 和 subGID 范围现在可以由 IdM 管理。现在,您可以在单个中央存储中定义范围,而不是将相同的 /etc/subuid/etc/subgid 文件部署到每一主机中。您必须修改 /etc/nsswitch.conf 文件,将 sss 添加到 services map 行:services: files sss

如需了解更多详细信息,请参阅 IdM 文档中的 手动管理子ID 范围 部分。

(JIRA:RHELPLAN-100020)