4.20. コンテナー
Image Mode for RHEL が FIPS モードをサポートするようになる
この機能拡張により、bootc イメージを構築するときに FIPS モードを有効にして、FIPS 承認モジュールのみを使用するようにシステムを設定できるようになります。bootc-image-builder
を使用することもできますが、その場合は Containerfile 設定で FIPS 暗号化ポリシーを有効にする必要があります。または、RHEL Anaconda インストールを使用することもできますが、その場合は Containerfile で FIPS モードを有効にするだけでなく、システムインストールの起動時に fips=1
カーネル引数を追加する必要もあります。詳細は、FIPS モードを有効にしたシステムのインストール を参照してください。
以下は、fips=1
カーネル引数を有効にするための指示を含む Containerfile です。
FROM registry.redhat.io/rhel9/rhel-bootc:latest# # Enable fips=1 kernel argument: https://containers.github.io/bootc/building/kernel-arguments.html COPY 01-fips.toml /usr/lib/bootc/kargs.d/ # Install and enable the FIPS crypto policy RUN dnf install -y crypto-policies-scripts && update-crypto-policies --no-reload --set FIPS
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]
composefs ファイルシステムが利用可能になる
composefs 読み取り専用ファイルシステムが完全にサポートされるようになりました。現在、これは一般的に bootc/ostree および podman プロジェクトでのみ使用されることを目的としています。composefs を使用すると、これらのプロジェクトを使用して、読み取り専用のイメージを作成して使用したり、イメージ間でファイルデータを共有したり、実行時にイメージを検証したりできます。その結果、完全に検証されたファイルシステムツリーがマウントされ、同一ファイルが適宜きめ細かく共有されるようになります。
Jira:RHEL-18157[1]