10.19. コンテナー

fuse-overlayfs を持つルートレスコンテナーが削除されたファイルを認識しない

RHEL8.4 以前では、ルートレスイメージやコンテナーは fuse-overlayfs ファイルシステムを使用して作成または保存されていました。RHEL 8.5 以降でこのようなイメージやコンテナーを使用すると、カーネルが提供する overlayfs の実装を使用している権限のないユーザーが、RHEL 8.4 のコンテナーやイメージからファイルやディレクトリーを削除した場合に問題が発生する可能性があります。この問題は、root アカウントで作成されたコンテナーには該当しません。

例えば、コンテナーやイメージから削除するファイルやディレクトリーは、fuse-overlayfs ファイルシステムを使用する場合、ホワイトアウトフォーマットを使用して、そのようにマークされます。しかし、フォーマットの違いにより、カーネルの overlayfs の実装では、fuse-overlayfs で作成されたホワイトアウトフォーマットを認識できません。その結果、削除されたファイルやディレクトリーはそのまま表示されます。この問題は、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)

ベータ版 GPG キーで署名されたコンテナーイメージがプルできない

現在、RHEL Beta のコンテナーイメージをプルしようとすると、podmanError: Source image rejected: None of the signatures were accepted のエラーメッセージと共に終了します。現在のビルドでは、RHEL ベータ版の GPG キーをデフォルトで信頼しないように設定されているため、イメージのプルに失敗します。

回避策としては、Red Hat Beta GPG キーがローカルシステムに保存されていることを確認し、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

namespaceubi9-betaまたはrhel9-betaに置き換えてください。

(BZ#2020301)