Menu Close

10.19. 容器

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

在 RHEL 8.4 和更早版本中,使用 fuse-overlayfs 文件系统创建或存储了无根镜像和容器。在 RHEL 8.5 及更高版本中使用这些镜像和容器可能会对使用内核提供的 overlayfs 实施以及已从容器或 RHEL 8.4 中的镜像中删除文件或目录的未授权用户造成问题。此问题不适用于由 root 帐户创建的容器。

例如,要从容器或镜像中删除的文件或目录在使用 fuse-overlayfs 文件系统时,会使用 whiteout 格式进行标记。但是,由于格式的不同,内核覆盖fs 实施无法识别 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 是否仍需要 fuse-overlayfs 所需的时间取决于容器中的文件和目录数量以及需要扫描的镜像的数量。

(JIRA:RHELPLAN-92741)

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

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

$ 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 会退出并显示错误消息:错误:源镜像被拒绝:不接受任何签名。镜像无法拉取,因为当前构建被配置为默认不信任 RHEL Beta GPG 密钥。

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

如果您没有本地存储 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

使用 ubi9-beta 或 rhel9-beta 替换 namespace

(BZ#2020301)