4.21. コンテナー
Image Mode for RHEL が FIPS モードをサポートするようになる
この機能拡張により、bootc イメージを構築するときに FIPS モードを有効にして、FIPS 承認モジュールのみを使用するようにシステムを設定できるようになります。bootc-image-builder を使用することもできますが、その場合は Containerfile 設定で FIPS 暗号化ポリシーを有効にする必要があります。または、RHEL Anaconda インストールを使用することもできますが、その場合は Containerfile で FIPS モードを有効にするだけでなく、システムインストールの起動時に fips=1 カーネル引数を追加する必要もあります。詳細は、FIPS モードを有効にしたシステムのインストール を参照してください。
以下は、fips=1 カーネル引数を有効にするための指示を含む Containerfile です。
Jira:RHELDOCS-18585[1]
Image Mode for RHEL が論理的にバインドされたアプリケーションイメージをサポートするようになる
この機能拡張により、ベース bootc イメージにライフサイクルがバインドされたコンテナーイメージがサポートされるようになりました。これにより、アプリケーションとオペレーティングシステムのさまざまな運用プロセスを統合することができ、アプリケーションイメージはイメージファイルまたは同等のものとしてベースイメージから参照されます。その結果、システムインストール用の複数のコンテナーイメージを管理できます。たとえば、切断されたインストールの場合、システムは 1 つだけではなくすべてミラーリングする必要があります。
Jira:RHELDOCS-18666[1]
Podman と Buildah が、イメージインデックスへの OCI アーティファクトの追加をサポートするようになる
この更新により、アーティファクトマニフェストを作成し、それをイメージインデックスに追加できるようになりました。
buildah manifest add コマンドは、次のオプションをサポートするようになりました。
-
アーティファクトマニフェストを作成するための
--artifactオプション -
--artifact-type、--artifact-config-type、--artifact-layer-type、--artifact-exclude-titles、および--subjectオプションを使用して、作成するアーティファクトマニフェストの内容を調整します。
buildah manifest annotate コマンドは、以下のオプションをサポートするようになりました。
-
--indexオプションは、イメージインデックス内のエントリーの 1 つではなく、インデックス自体にアノテーションを設定します。 -
イメージインデックスの件名フィールドを設定するための
--subjectオプション。
buildah manifest create コマンドが、新しいイメージインデックスにアノテーションを追加するための --annotation オプションをサポートするようになりました。
Podman ヘルスチェックイベントを無効にするオプションが利用可能になる
この機能強化により、containers.conf 設定ファイルの [engine] セクションに新しい healthcheck_events オプションが追加されました。これを使用して、health_status イベントの生成を無効にできます。healthcheck_events=false を設定してヘルスチェックイベントログを無効にします。
Podman のランタイムリソースの変更が永続化される
podman update コマンドを使用したコンテナー設定の更新は永続します。この機能強化は、SQLite と BoltDB データベースバックエンドの両方に適用されることに注意してください。
マルチアーキテクチャーイメージのビルドが完全にサポートされる
マルチアーキテクチャーコンテナーイメージを作成する podman farm build コマンドが完全にサポートされるようになりました。
ファームとは、UNIX Podman ソケットが実行されているマシンのグループです。ファーム内のノードには、さまざまなアーキテクチャーのマシンを含めることができます。podman farm build コマンドは、podman build --arch --platform コマンドよりも高速です。
podman farm build を使用して、次のアクションを実行できます。
- ファーム内のすべてのノードにイメージをビルドします。
- ファーム内のすべてのノード上のイメージをマニフェストリストにバンドルします。
-
すべてのファームノードで
podman buildコマンドを実行します。 -
--tagオプションを使用して指定されたレジストリーにイメージをプッシュします。 - マニフェストリストをローカルに作成します。
- マニフェストリストをレジストリーにプッシュします。
マニフェストリストには、ファーム内に存在するネイティブアーキテクチャータイプごとに 1 つのイメージが含まれます。
Podman で Pod 用の Quadlet が利用可能になる
Podman v5.0 以降では、Quadlet を使用して、Pod の説明から systemd サービスファイルを自動的に生成できます。
Podman v2.0 RESTful API が更新される
libpod/images/json エンドポイントに新しいフィールドが追加されました。
-
ターゲットがマニフェストであるかを判断する
isManifestブール値フィールド。libpodエンドポイントは、イメージとマニフェストリストの両方を返します。 -
イメージリストの
osおよびarchフィールド。
Kubernetes YAML は、データボリュームコンテナーを init コンテナーとしてサポートするようになる
"io.podman.annotations.kube.image.automount/$ctrname" アノテーションを使用して、ボリュームとして自動的にマウントするイメージのリストを Kubernetes YAML で指定できるようになりました。podman run --mount type=image,source=<image>,dst=<path>,subpath=<path> を使用したイメージベースのマウントで、イメージの一部だけをコンテナーにマウントするための新しいオプション subpath がサポートされるようになりました。
Container Tools パッケージが更新される
Podman、Buildah、Skopeo、crun、runc ツールを含む、更新された Container Tools RPM メタパッケージが利用可能になりました。Podman v5.0 には、以前のバージョンに対する次の注目すべきバグ修正と機能拡張が含まれています。
-
podman manifest addコマンドは、マニフェストリストに OCI アーティファクトを追加するための新しい--artifactオプションをサポートするようになりました。 -
podman create、podman run、podman pushコマンドは、イメージのプッシュとプルの再試行を設定するための--retryおよび--retry-delayオプションをサポートするようになりました。 -
podman runおよびpodman execコマンドは、ファイル記述子のリストをコンテナーに渡すための--preserve-fdオプションをサポートするようになりました。これは、特定の数のファイル記述子を渡す--preserve-fdsの代わりとして使用します。 - Quadlet はテンプレート化されたユニットをサポートするようになりました。
-
podman kube playコマンドは、volume.podman.io/imageアノテーションを使用してイメージベースのボリュームを作成できるようになりました。 -
podman kube playコマンドで作成されたコンテナーには、新しいアノテーションio.podman.annotations.volumes-fromを使用して、他のコンテナーのボリュームを含めることができるようになりました。 -
podman kube playコマンドで作成された Pod は、Pod 定義でio.podman.annotations.userns annotationを使用して、ユーザー名前空間オプションを設定できるようになりました。 -
podman createおよびpodman runの--gpusオプションが、Nvidia GPU と互換性を持つようになりました。 -
podman createおよびpodman runの--mountオプションは、コンテナーに逆参照されたターゲットではなく、シンボリックリンクをマウントするための新しいマウントオプションno-dereferenceをサポートします。 -
Podman は、レジストリーログイン認証情報を取得できる Docker 設定を指す新しい
--configグローバルオプションをサポートするようになりました。 -
podman ps --formatコマンドは、新しい.Labelフォーマット指定子をサポートするようになりました。 -
podman run --userns=autoオプションのuidmappingおよびgidmappingオプションは、ホスト ID の前に@記号を付けることでホスト ID にマップできるようになりました。 - Quadlet は systemd スタイルのドロップインディレクトリーをサポートするようになりました。
-
Quadlet は、新しい
.podユニットファイルを使用して Pod を作成することをサポートするようになりました。 -
Quadlet は、
.containerファイルでEntrypointとStopTimeoutという 2 つの新しいキーをサポートするようになりました。 -
Quadlet では、
.containerファイルでUlimitキーを複数回指定して、コンテナーに複数のulimitを設定できるようになりました。 -
Quadlet では、
.containerファイルでNotifyキーをhealthyに設定して、ヘルスチェックに合格し始めたときにのみコンテナーが起動したことを通知するようにできます。 -
コンテナーに対する
podman inspectコマンドの出力が変更されました。Entrypointフィールドは文字列から文字列の配列に変更され、StopSignalは整数から文字列に変更されます。 -
コンテナーの
podman inspectコマンドは、ヘルスチェックなしでコンテナーを検査する場合に、ヘルスチェックに対して nil を返すようになりました。 - 新しい BoltDB データベースを作成することはできなくなりました。作成を試みるとエラーが発生します。すべての新しい Podman インストールで、SQLite データベースバックエンドが使用されるようになりました。既存の BoltDB データベースは引き続き使用可能です。
- CNI ネットワークのサポートはビルドタグによって制限されており、デフォルトでは有効になっていません。
-
Podman は、
cgroups v1システムで使用すると警告を出力するようになりました。cgroups v1のサポートは非推奨となり、今後のリリースで削除される予定です。警告を抑制するには、PODMAN_IGNORE_CGROUPSV1_WARNING環境変数を設定できます。 - Docker 互換 API 経由で送信されるネットワーク統計情報は、集約されずにインターフェイスごとになり、Docker の互換性が向上しました。
-
パフォーマンスを高めるために、ルートレスネットワーキングのデフォルトツールが
slirp4netnsからpastaに変更されました。その結果、pastaという名前のネットワークはサポートされなくなりました。 - List Images REST API で複数のフィルターを使用すると、フィルターが OR ではなく AND で結合されるようになったことで、Docker との互換性が向上しました。
配列を受け入れるいくつかの Podman CLI オプションの解析が変更され、文字列で区切られたリストを受け入れなくなりました。代わりにオプションを複数回渡すことが必要になりました。以下が該当するオプションです。
-
podman manifest annotateおよびpodman manifest addの--annotationオプション -
podman kube playの--configmap、--log-opt、--annotationオプション
-
podman image trust setの--pubkeysfileオプション-
podman create、podman run、podman push、podman pullの--encryption-keyおよび--decryption-keyオプション -
podman execの--env-fileオプションと、podman createおよびpodman runの--bkio-weight-device、--device-read-bps、--device-write-bps、--device-read-iops、--device-write-iops、--device、--label-file、--chrootdirs、--log-opt、--env-fileオプション -
--hooks-dirおよび--moduleグローバルオプション
-
-
podman system resetコマンドは、稼働しているコンテナーの停止を待たず、すぐにSIGKILLシグナルを送信するようになりました。 -
podman network inspectコマンドの出力に、ネットワークを使用する実行中のコンテナーが含まれるようになりました。 -
podman composeコマンドは、AMD および Intel 64 ビットアーキテクチャー (x86-64-v2) と 64 ビット ARM アーキテクチャー (ARMv8.0-A) に加えて、他のアーキテクチャーでもサポートされるようになりました。 -
podman kube playコマンドとpodman kube generateコマンドの--no-truncオプションは非推奨になりました。Podman はアノテーションサイズに関して Kubernetes 仕様に準拠するようになったため、このオプションは不要になりました。 -
podman system connectionコマンドからの接続とpodman farmコマンドからのファームは、podman-connections.confファイルという新しい設定ファイルに書き込まれるようになりました。その結果、Podman はcontainers.confファイルに書き込まなくなりました。Podman は、containers.confからの既存の接続を引き続き尊重します。 -
ほとんどの
podman farmサブコマンドは、実行するためにファーム内のマシンに接続する必要がなくなりました。 -
podman createコマンドとpodman runコマンドでは、コンテナーイメージでエントリーポイントが定義されていない場合に、コマンドラインでエントリーポイントを指定する必要がなくなりました。この場合、空のコマンドが OCI ランタイムに渡され、その結果の動作はランタイム固有になります。 -
潜在的な短縮名を、イメージをプルするために使用できる Podman の完全修飾イメージ参照のリストに解決するための新しい API エンドポイント
/libpod/images/$name/resolve追加されました。
主な変更点の詳細は、アップストリームのリリースノート を参照してください。
--compat-volumes オプションが Podman と Buildah で利用可能になる
新しい --compat-volumes オプションは、buildah build、podman build、および podman farm build コマンドで使用できます。このオプションは、VOLUME 命令を使用してマークされたディレクトリーの内容に対して特別な処理をトリガーし、その後その内容は ADD および COPY 命令を使用しなければ変更できなくなります。これらの場所で RUN 命令により加えられた変更はすべて破棄されます。以前はそれがデフォルトの動作でしたが、現在はデフォルトで無効になっています。
新しい rhel10-beta/rteval コンテナーイメージ
Red Hat Container Registry でリアルタイムの registry.redhat.io/rhel10-beta/rteval コンテナーイメージを使用して、スタンドアロンの RHEL インストールのレイテンシー分析を実行できるようになりました。rhel10-beta/rteval コンテナーイメージを使用すると、コンテナー化されたセットアップ内でレイテンシーテストを実行し、このようなソリューションがリアルタイムワークロードで実行可能かどうかを判断したり、rteval のベアメタル実行の結果を比較したりできます。この機能を使用するには、リアルタイムサポート付きの RHEL をサブスクライブしてください。チューニングガイドラインは提供されていません。
Jira:RHELDOCS-18522[1]
containers.conf ファイルが読み取り専用になる
containers.conf ファイルに保存されているシステム接続とファームの情報が読み取り専用になりました。システム接続とファームの情報は、Podman のみが管理する podman.connections.json ファイルに保存されます。Podman は、[engine.service_destinations] や [farms] セクションなどの古い設定オプションを引き続きサポートします。必要に応じて手動で接続またはファームを追加できますが、podman system connection rm コマンドを使用して containers.conf ファイルから接続を削除することはできません。
必要に応じて、containers.conf ファイルを手動で編集することは可能です。Podman v4.0 によって追加されたシステム接続は、Podman v5.0 へのアップグレード後も変更されません。
macvlan および ipvlan ネットワークインターフェイス名は、containers.conf で設定可能
macvlan および ipvlan ネットワークを指定するには、containers.conf 設定ファイルの新しい interface_name フィールドを使用して、コンテナー内に作成されたネットワークインターフェイスの名前を調整します。
Jira:RHELDOCS-18769[1]
bootc-image-builder は、ISO ビルドへのカスタムキックスタートファイルの定義と注入をサポートするようになる
この機能拡張により、ユーザーの設定によるキックスタートの定義、パーティショニングのカスタマイズ、キーの注入、キックスタートファイルの ISO ビルドへの注入を実行し、インストールプロセスを設定できるようになりました。結果として得られるディスクイメージは、デバイス、切断されたシステム、エッジデバイスなどを自動化してデプロイする自己完結型のインストーラーを作成します。その結果、bootc-image-builder を使用したカスタマイズしたメディアの作成がはるかに簡単になります。
Jira:RHELDOCS-18734[1]
bootc-image-builder を使用した GCP イメージの構築のサポート
bootc-image-builder ツールを使用すると、.gce ディスクイメージを生成し、Google Compute Engine (GCE) プラットフォームでインスタンスをプロビジョニングできるようになりました。
Jira:RHELDOCS-18472[1]
bootc-image-builder を使用した VMDK の作成とデプロイのサポート
この機能拡張により、bootc-image-builder ツールを使用して bootc イメージから仮想マシンディスク (VMDK) を作成し、VMDK イメージを VMware vSphere にデプロイできるようになりました。
Jira:RHELDOCS-18398[1]
podman pod inspect コマンドが、Pod の数に関係なく JSON 配列を提供するようになる
以前は、単一の Pod を検査するときに podman pod inspect コマンドは JSON 配列を除外していました。この更新により、podman pod inspect コマンドは、検査された Pod の数に関係なく、出力に JSON 配列を生成するようになりました。
Jira:RHELDOCS-18770[1]