6.23. 容器


RHEL 的镜像模式支持 FIPS 模式

有了此增强,您可以在构建 bootc 镜像时启用 FIPS 模式,来将系统配置为只使用 FIPS 批准的模块。您可以使用 bootc-image-builder,它需要在 Containerfile 配置中启用 FIPS 加密策略,或使用 RHEL Anaconda 安装,另外在 Containerfile 中启用 FIPS 模式,还需要在引导系统安装时添加 fips=1 内核参数。如需了解更多详细信息,请参阅 安装启用了 FIPS 模式的系统

以下是一个带有启用 fips=1 内核参数指令的 Containerfile 。

FROM registry.redhat.io/rhel9/rhel-bootc:latest#
# Enable fips=1 kernel argument:
https://bootc-dev.github.io/bootc//building/kernel-arguments.html
COPY 01-fips.toml /usr/lib/bootc/kargs.d/
# Install and enable the FIPS crypto policy
RUN dnf install -y crypto-policies-scripts && update-crypto-policies --no-reload --set FIPS
Copy to Clipboard Toggle word wrap

01-fips.toml 的内容是:

kargs = ["fips=1"]
Copy to Clipboard Toggle word wrap

Jira:RHELDOCS-18585[1]

支持使用 bootc-image-builder 创建和部署 VMDK

在这个版本中,您可以使用 bootc-image-builder 工具从 bootc 镜像创建虚拟机磁盘(VMDK),并将 VMDK 镜像部署到 VMware vSphere。

Jira:RHELDOCS-18398[1]

Podman 和 Buildah 支持将 OCI 工件添加到镜像索引中

有了此更新,您可以创建工件清单,并将其添加到镜像索引中。

buildah manifest add 命令支持以下选项:

  • 创建工件清单的 --artifact 选项
  • --artifact-type,--artifact-config-type ,--artifact-layer-type,--artifact-exclude-titles, 和- subject 选项来配置它所创建的工件清单的内容。

buildah manifest annotate 命令支持以下选项:

  • --index 选项对索引本身设置注解,而不是镜像索引中的一个条目
  • 用来设置镜像索引的 subject 字段的 --subject 选项。

buildah manifest create 命令支持 the- annotation 选项,将注解添加到新镜像索引中。

Jira:RHEL-33571

提供了用于禁用 Podman 健康检查事件的选项

此增强在 [engine] 部分下的 containers.conf 配置文件中添加了一个新的 healthcheck_events 选项,以禁用 health_status 事件的生成。设置 healthcheck_events=false ,来禁用日志记录健康检查事件。

Jira:RHEL-34604

Podman 中的运行时资源更改是持久的

使用 podman update 命令更新容器配置是持久的。请注意,这个增强用于 SQLite 和 BoltDB 数据库后端。

Jira:RHEL-33566

完全支持构建多架构镜像

完全支持用于创建多架构容器镜像的 podman farm build 命令。

农场是在其中运行了 UNIX Podman 套接字的一组计算机。场中的节点可以有不同架构的机器。podman farm build 命令比 podman build --arch --platform 命令快。

您可以使用 podman farm build 来执行以下操作:

  • 在农场的所有节点上构建一个镜像。
  • 将场中所有节点上的镜像捆绑到清单列表中。
  • 在所有农场节点上运行 podman build 命令。
  • 将镜像推送到 --tag 选项指定的注册中心。
  • 本地创建一个清单列表。
  • 将清单列表推送到注册中心。

清单列表包含场中存在的每个原生架构类型的一个镜像。

Jira:RHEL-34611

Podman 中用于 pod 的 Quadlets 可用

从 Podman v5.0 开始,您可以使用 Quadlet 从 pod 描述中自动生成 systemd 服务文件。

Jira:RHEL-33573

Podman v2.0 RESTful API 已更新

新字段已添加到 libpod/images/json 端点中:

  • isManifest 布尔值字段确定目标是否为清单。libpod 端点返回镜像和清单列表。
  • 镜像列表的 osarch 字段。

Jira:RHEL-34613

Kubernetes YAML 支持数据卷容器作为 init 容器

使用 "io.podman.annotations.kube.image.automount/$ctrname" 注解可在 Kubernetes YAML 中指定自动挂载的镜像列表。使用 podman run --mount type=image,source=<image>,dst=<path>,subpath=<path > 的基于镜像的挂载支持一个新的选项 subpath,来仅将镜像的一部分挂载到容器中。

Jira:RHEL-34606

containers.conf 文件是只读

存储在 containers.conf 文件中的系统连接和场信息是只读的。系统连接和农场信息将存储在 podman.connections.json 文件中,仅由 Podman 管理。Podman 继续支持旧的配置选项,如 [engine.service_destinations][farms] 部分。但是,如果需要,您仍然可以手动添加连接或场,但无法使用 podman system connection rm 命令从 containers.conf 文件中删除连接。

如果需要,您仍然可以手工编辑 containers.conf 文件。Podman v4.0 添加的系统连接在升级到 Podman v5.0 后保持不变。

Jira:RHEL-40639

对 Podman v5.0 的默认设置更改

在 RHEL 10.0 中,对 Podman v5.0 的以下默认设置更改:

  • 默认使用 cgroup v2 而不是 cgroup v1
  • pasta 是无根容器使用的默认网络,而不是 slirp4netns

Jira:RHEL-40643

新的 rhel10/rteval 容器镜像

Red Hat Container Registry 中提供了实时 registry.redhat.io/rhel10/rteval 容器镜像,以便在独立 RHEL 安装上运行延迟分析。使用 rhel10/rteval 容器镜像,您可以在容器化设置中执行延迟测试,以确定此类解决方案是否可以用于实时工作负载,或者将结果与运行 rteval 的裸机运行进行比较。要使用此功能,请订阅带有实时支持的 RHEL。不提供调优指南。

Jira:RHELDOCS-18522[1]

为 Podman 和 Buildah 提供了 --compat-volumes 选项

您可以将新的 -compat-volumes 选项与 buildah buildpodman buildpodman farm build 命令一起使用。此选项触发了对使用 VOLUME 指令标记的目录内容的特殊处理,以便其内容随后只能被 ADDCOPY 指令修改。在这些位置通过 RUN 指令所做的任何更改将被丢弃。在以前的版本中,这个行为是默认设置,但默认禁用它。

Jira:RHEL-52240

macvlanipvlan 网络接口名称可在 containers.conf 中进行配置

要指定 macvlanipvlan 网络,您可以使用 containers.conf 配置文件中的新的 interface_name 字段来调整容器中创建的网络接口的名称。

Jira:RHELDOCS-18769[1]

支持使用 bootc-image-builder 构建 GCP 镜像

通过使用 bootc-image-builder 工具,您可以生成 .gce 磁盘镜像,并在 Google Compute Engine (GCE)平台上置备实例。

Jira:RHELDOCS-18472[1]

Podman 支持推送和拉取使用 zstd:chunked 压缩的镜像

您可以推送使用 zstd:chunked 格式压缩的镜像,以减少镜像大小,并使用部分拉取。

Jira:RHEL-67260

Container Tools 软件包已更新

提供了更新的 Container Tools RPM meta-package,其中包括 Podman、Buildah、Skopeo、crunrunc 工具。Buildah 已更新至版本 1.39.0,Skopeo 已更新至版本 1.18.0。Podman v5.4 包含以下值得注意的 bug 修复和增强:

  • podman update 命令支持与健康检查相关的各种选项 :--health-cmd 定义一个新的健康检查和- -no-healthcheck,以禁用现有的健康检查。这些选项可以更轻松地在运行的容器中添加、修改或禁用健康检查。如需更多信息,请参阅 podman-update (5) 手册页。
  • podman runpodman createpodman volume create 命令的-- mount type= volume 选项支持一个新的选项 subpath=,以便仅在容器中可见卷的子集。
  • podman runpodman createpodman pod create 命令的 --userns=keep-id 选项支持一个新的选项,即-- userns=keep-id:size=,以配置用户命名空间的大小。
  • podman kube play 命令支持容器设备接口(CDI)设备。
  • podman runpodman createpodman pod create 命令支持一个新的选项,即--hosts-file 来定义用于容器中的 /etc/hosts 的基本文件。
  • podman runpodman createpodman pod create 命令支持一个新的选项,--no-hostname 可以禁用在容器中创建 /etc/hostname
  • podman network create 命令支持网桥网络的新选项,即 --opt mode=unmanaged,它允许 Podman 在系统中使用现有网络桥接而无需更改。
  • podman runpodman createpodman pod create 的--network 选项接受桥接网络 host_interface_name 的新选项,用于指定容器外创建的网络接口的名称。
  • 在删除不存在的清单时,podman manifest rm 命令支持一个新的选项(--ignore )才能成功继续。
  • podman system prune 命令支持一个新的选项,即构建构建,以从预先终止的构建容器中移除。
  • Podman 将容器主机名传递给 Netavark,它将它们用于容器的任何 DHCP 请求。
  • 从 Makefile 构建 podman 时,打包程序可以设置 BUILD_ORIGIN 环境变量。这提供了有关谁构建 Podman 二进制文件的信息,此信息显示在 podman versionpodman info 命令中。包含这些信息可以通过帮助维护人员识别构建和安装的源和方法,来协助 bug 报告。
  • podman kube generatepodman kube play 命令可以创建并运行 Kubernetes Job YAML。
  • podman kube generate 命令包括生成的 YAML 中 pod 和容器的用户命名空间信息。podman kube play 命令使用此信息在创建基于 YAML 的新 pod 时复制用户命名空间配置。
  • podman kube play 命令支持类型为镜像的 Kubernetes 卷。
  • Quadlet 生成的 systemd 单元的服务名称可使用所有支持的 Quadlet 文件中的 ServiceName 键设置。
  • Quadlets 可以使用所有 Quadlet 文件支持的新键 DefaultDependencies 来禁用其对 network-online.target 的隐式依赖项。
  • Quadlet .container.pod 文件支持一个新的密钥 AddHost,将主机添加到容器或 pod 中。
  • Quadlet .container.pod 文件中的 PublishPort 键可以接受其值中的变量。
  • Quadlet .container 文件支持两个新密钥 CgroupsModeStartWithPod,为容器配置控制组,以及容器是否通过它所属的 pod 启动。
  • Quadlet .container 文件可以通过指定要在 Network 键内共享 容器的 . container 文件来使用另一个容器的网络。
  • Quadlet .container 文件可以使用 .image 目标的 Mount=type=image 密钥将由 .image 文件管理的镜像挂载到容器中。
  • Quadlet .pod 文件支持六个新密钥、 DNS 选项DNSSearchIPIP6UserNS,来为 pod 配置 DNS、静态 IP 和用户命名空间设置。
  • Quadlet .image 文件可以通过多次指定 ImageTag 键来多次提供镜像。
  • Quadlets 可以放在 /run/containers/systemd 目录中以及现有的目录中,如 $HOME/containers/systemd/etc/containers/systemd/users
  • Quadlet 可以正确处理是符号链接的单元目录的子目录。
  • podman manifest inspect 命令在其输出中包含清单的注解。
  • podman createpodman runpodman pod create 的--add-host 选项支持指定多个主机名、分号分隔(如 podman run --add-host test1;test2:192.168.1.1)。
  • podman runpodman create 命令支持三个新选项来配置健康检查日志记录:-- health-log-destination (指定日志存储的位置)、--health-max-log-count (指定日志值得存储多少个健康检查)和 --health-max-log-size (指定健康检查日志的最大大小)。

有关值得注意的变化的更多信息,请参阅 上游发行注记

Jira:RHEL-66762

容器工具使用 sigstore 签名进行容器镜像验证

有了此更新,sigstore 签名用于容器镜像验证而不是 GPG 签名,也称为简单签名。

Jira:RHEL-32724

可以自定义 podman 健康检查日志输出

在此次更新之前,当使用健康检查配置容器时,输出只能使用 podman inspect 命令访问容器状态文件中。这使调试过程变得复杂。在这个版本中,您可以使用 podman update 命令和 --health-log-destination ,-- health-max-log-count , and-health-max-log-size 选项来配置健康检查日志输出。

如需更多信息,请参阅 podman-update 手册页。

Jira:RHEL-24623[1]

使用单个命令部署容器镜像可用

您可以使用单个命令将容器镜像部署到 RHEL 云实例中。system-reinstall-bootc 命令安装执行以下操作:

  • 拉取提供的镜像,以设置 SSH 密钥或访问系统。
  • 使用所有绑定挂载和配置的 SSH 密钥运行 bootc install to-existing-root 命令。

Jira:RHELDOCS-19516[1]

支持从头开始创建自定义 bootc 镜像

您可以从头开始创建 bootc 镜像,并完全控制镜像的内容,定制系统环境以满足特定要求。使用 bootc-base-imgectl 命令,您可以根据现有的 bootc 基础镜像创建自定义 bootc 镜像。Bootc Image from Scratch 是从容器镜像派生的,不会自动接收来自默认基础镜像的更新。要包含这些更新,您必须将它们手动合并为容器管道的一部分。另外,您可以在任何 bootc 容器镜像上使用 bootc-base-imgectl 中的 rechunk 子命令来根据需要优化或重组镜像。

Jira:RHELDOCS-19825[1]

提供了用于 bootc-image-builder 的新镜像构建进度条

在以前的版本中,您无法通过查看日志来检查镜像构建的进度。有了此增强,您可以使用 bootc-image-builder 检查您创建的镜像构建的进度。您可以在构建镜像时使用 --progress=verbose 参数恢复回之前的行为。

Jira:RHELDOCS-20170[1]

podman pod inspect 命令提供 JSON 数组,而不考虑 pod 的数量

在以前的版本中,在检查单个 pod 时,podman pod inspect 命令会忽略 JSON 数组。在这个版本中,podman pod inspect 命令在输出中生成一个 JSON 数组,而不考虑检查的 pod 数量。

Jira:RHELDOCS-18770[1]

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat