4.16. 容器


Container Tools 软件包已更新

现在提供更新的 Container Tools 软件包,其包括 Podman、Buildah、Skopeo、crun 和 runc 工具。与之前版本相比,重要的程序错误修复和增强包括:

Podman v4.9 中的显著变化:

  • 现在,您可以使用 podman --module <your_module_name> 命令来按需加载模块,并覆盖系统和用户配置文件。
  • 添加了一个新的带有一组 create,set,removeupdate 子命令的 podman farm 命令。使用这些命令,您可以将构建分发到为不同架构运行 podman 的机器。
  • 添加了一个新的 podman-compose 命令,它使用外部 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-167794[1]

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-167830[1]

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

有了此增强,Podman v4.9 RESTful API 现在在拉取镜像或将镜像推送到注册中心时显示进度数据。

Jira:RHELPLAN-167822[1]

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

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

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

Jira:RHELPLAN-168179[1]

管理员可以使用 nftables 为防火墙规则设置隔离

您可以在没有安装 iptables 的系统上使用 Netavark (Podman 容器网络堆栈)。在以前的版本中,当使用容器网络接口(CNI)网络(Netavark 的前身)时,无法在没有安装 iptables 的系统上设置容器网络。有了此增强,Netavark 网络堆栈可在仅安装了 nftables 的系统上工作,并改进了自动生成的防火墙规则的隔离。

Jira:RHELDOCS-16955[1]

Containerfile 现在支持多行指令

您可以在 Containerfile 文件中使用多行 HereDoc 指令(Here 文档表示法)来简化此文件,并减少执行多个 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-168184[1]

Toolbx 现在可用

使用 Toolbx,您可以将开发和调试工具、编辑器和软件开发套件(SDK)安装到 Toolbx 完全可变的容器中,而不影响基本操作系统。Toolbx 容器基于 registry.access.redhat.com/ubi8.10/toolbox:latest 镜像。

Jira:RHELDOCS-16241[1]

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.