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

01-fips.toml 的内容是:

kargs = ["fips=1"]
Copy to Clipboard

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 healthchek 事件的选项

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

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 容器镜像

现在,红帽容器注册中心提供了实时 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 命令现在支持一个新选项 --build,来删除过早终止的构建中剩余的构建容器。
  • 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 文件现在可以通过指定要在网络键内共享的容器的 .container 文件来使用另一个容器的网络。
  • Quadlet .container 文件现在可以使用 Mount=type=image 键和 .image 目标,将 .image 文件管理的镜像挂载到容器中。
  • Quadlet .pod 文件现在支持六个新键,DNSDNSOptionDNSSearchIPIP6UserNS,以配置 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--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