Menu Close

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)