8.5. コンテナーイメージを小さいバージョンに最適化する
bootc-base-imagectl rechunk サブコマンドを使用して、入力されたコンテナーイメージを最適化します。これにより、ファイルシステムをコンテンツアドレス指定可能な再現可能なレイヤーへと分割し、事前に SELinux ラベルを計算して付与することができます。これにより、レイヤーの再利用 (重複排除) を最大化し、イメージビルド間のデータ転送を最小限に抑えることで、プッシュとプル両方においてネットワーク効率が向上します。
前提条件
- 以前にビルドされたベースイメージがある。
手順
ベースイメージを再チャンク化するには、次のコマンドを実行します。
$ sudo podman run --rm --privileged -v /var/lib/containers:/var/lib/containers \ registry.redhat.io/rhel10/rhel-bootc:latest \ /usr/libexec/bootc-base-imagectl rechunk \ quay.io/exampleos/rhel-bootc:single \ quay.io/exampleos/rhel-bootc:chunkedrechunk操作は、デフォルトの作成モード (FROM <rhel-bootc>を使用して新しいイメージを作成する手法) で生成されたイメージに対して機能します。これは、単一の大きなtarレイヤーのみを出力するスクラッチビルドと組み合わせて使用すると便利です。rechunk操作を行わない場合、たとえばカーネルの更新など、入力に対する変更はすべて、bootc イメージの内容全体を含む新しいレイヤーの生成につながります。この新しいレイヤーは、プッシュされ、レジストリーに保存され、クライアントによってプルされる必要があります。bootc イメージに含まれる
bootc-base-imagectlユーティリティーは、コンテナー内で実行されます。ただし、機能させるには、ホストのコンテナーストレージをコンテナーにマッピングする必要があります。