9.20. コンテナー
Podman と bootc は同じレジストリーログインプロセスを共有しない
Podman と bootc
は、イメージをプルするときに異なるレジストリーログインプロセスを使用します。その結果、Podman を使用してイメージにログインすると、そのイメージでは bootc
のレジストリーへのログインが機能しなくなります。Image Mode for RHEL システムをインストールし、次のコマンドを使用して registry.redhat.io にログインします。
# podman login registry.redhat.io <username_password>
次に、次のコマンドを使用して、registry.redhat.io/rhel9/rhel-bootc
イメージに切り替えようとします。
# bootc switch registry.redhat.io/rhel9/rhel-bootc:9.4
次のメッセージが表示されるはずです。
Queued for next boot: registry.redhat.io/rhel9/rhel-bootc:9.4
ただし、エラーが表示されます。
ERROR Switching: Pulling: Creating importer: Failed to invoke skopeo proxy method OpenImage: remote error: unable to retrieve auth token: invalid username/password: unauthorized: Please login to the Red Hat Registry using your Customer Portal credentials. Further instructions can be found here: https://access.redhat.com/RegistryAuthentication
この問題を回避するには、bootc
で認証されたレジストリーを使用するように、コンテナープルシークレットを設定する の手順に従います。
Jira:RHELDOCS-18471[1]
古いコンテナーイメージ内で 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[1]
ルートファイルシステムはデフォルトでは拡張されない
cloud-init
を含まないベースコンテナーイメージを使用して、bootc-image-builder
を使用して AMI または QCOW2 コンテナーイメージを作成すると、起動時にルートファイルシステムのサイズがプロビジョニングされた仮想ディスクのフルサイズまで動的に拡張されません。
この問題を回避するには、次の利用可能なオプションのいずれかを適用します。
-
イメージに
cloud-init
を含めます。 - コンテナーイメージにカスタムロジックを含めて、ルートファイルシステムを拡張します。次に例を示します。
/usr/bin/growpart /dev/vda 4 unshare -m bin/sh -c 'mount -o remount,rw /sysroot && xfs_growfs /sysroot'
-
/var/lib/containers
などのセカンダリーファイルシステムに追加のスペースを使用するためのカスタムロジックを含めます。
デフォルトでは、物理ルートストレージは /sysroot
パーティションにマウントされます。