10.19. 容器


带有 fuse-overlayfs 的无根容器无法识别删除的文件

在 RHEL 8.4 及更早版本中,rootless 镜像和容器是使用 fuse-overlayfs 文件系统创建或存储的。在 RHEL 8.5 及之后的版本中使用此类镜像和容器,对使用内核提供的 overlayfs 实现的非特权用户,以及已删除了 RHEL 8.4 中容器或镜像中文件或目录的用户引入了问题。这个问题不适用于 root 帐户创建的容器。

例如,在使用 fuse-overlayfs 文件系统时,从容器或镜像中删除的文件或目录被标记为使用 whiteout 格式的文件或目录。但是,由于格式的不同,内核 overlayfs 实现无法识别 fuse-overlayfs 创建的 whiteout 格式。因此,任何删除的文件或目录仍会出现。这个问题不适用于 root 帐户创建的容器。

要临时解决这个问题,请使用以下选项之一:

  1. 使用 podman unshare rm -rf $HOME/.local/share/containers/* 命令删除所有非特权用户的容器和镜像。当用户下次运行 Podman 时,会重新创建 $HOME/.local/share/containers 目录,用户需要重新创建其容器。
  2. 继续以无根用户身份运行 podman 命令。第一次在系统上调用 podman 的更新版本,它会扫描 $HOME/.local/share/containers 目录中的所有文件,并检测是否使用 fuse-overlayfs。Podman 记录扫描结果,以便以后它不会重新运行扫描。因此,不会出现删除的文件。

检测 fuse-overlayfs 仍需要的时间取决于需要扫描的容器和镜像中的文件和目录数量。

(JIRA:RHELPLAN-92741)

在较旧的容器镜像中运行 systemd 无法正常工作

在较旧的容器镜像(如 centos:7)中运行 systemd 将无法正常工作:

$ podman run --rm -ti centos:7 /usr/lib/systemd/systemd
 Storing signatures
 Failed to mount cgroup at /sys/fs/cgroup/systemd: Operation not permitted
 [!!!!!!] Failed to mount API filesystems, freezing.

要临时解决这个问题,请使用以下命令:

# mkdir /sys/fs/cgroup/systemd
# mount none -t cgroup -o none,name=systemd /sys/fs/cgroup/systemd
# podman run --runtime /usr/bin/crun --annotation=run.oci.systemd.force_cgroup_v1=/sys/fs/cgroup --rm -ti centos:7 /usr/lib/systemd/systemd

(JIRA:RHELPLAN-96940)

使用 Beta GPG 密钥签名的容器镜像无法拉取

目前,当尝试拉取 RHEL Beta 容器镜像时,podman 会退出并显示错误消息:Error:Source image rejected:None of the signatures were accepted。镜像因为当前构建被配置为不信任 RHEL Beta GPG 密钥而无法拉取。

作为临时解决方案,请确保红帽 Beta GPG 密钥保存在您的本地系统中,并使用针对适当的 beta 命名空间更新 podman image trust set 命令的现有信任范围。

如果您没有本地存储 Beta GPG 密钥,您可以通过运行以下命令来拉取它:

sudo wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta https://www.redhat.com/security/data/f21541eb.txt

要将 Beta GPG 密钥作为信任添加到命名空间中,请使用以下命令之一:

$ sudo podman image trust set -f /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta registry.access.redhat.com/namespace

$ sudo podman image trust set -f /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta registry.redhat.io/namespace

namespace 替换为 ubi9-betarhel9-beta

(BZ#2020301)

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.