4.21. コンテナー
新しい rhel9/valkey-8 コンテナーイメージが RHEL で一般提供になりました
新しく利用可能になった rhel9/valkey-8 コンテナーイメージでは、アトミック操作が可能であり、文字列、ハッシュ、リスト、セット、ソート済みセットなどのさまざまなデータ型がサポートされています。このイメージは、インメモリーのデータセットを使用するため、高いパフォーマンスを実現します。このデータセットは、ディスクに保存することも、ログにコマンドを付加することで保存することもできます。
Jira:RHELDOCS-20639[1]
再現可能なコンテナービルドのサポートが向上しました
再現可能なビルドにより、特定の入力セットから一貫して同じ出力が生成されるようになります。この機能拡張は、これまでコンテナーイメージビルドの再現性を複雑にしていたいくつかの要因に対処するものです。-source-date-epoch と -rewrite-timestamp を使用すると、ビルドの再現性が向上し、$SOURCE_DATE_EPOCH の設定や検索などの一般的なプラクティスとの整合性が向上します。ただし、完全な再現性を保証することはできません。
Podman RESTFUL API の新しいアーティファクトエンドポイント
Podman RESTFUL API に新しいアーティファクトエンドポイントが追加され、OCI アーティファクトをプログラムによって管理できるようになりました。この機能拡張により、OCI アーティファクトの操作を既存のシステムやスクリプトに統合することが容易になります。
Container Tools パッケージが更新されました
Podman、Buildah、Skopeo、crun、runc ツールを含む、更新された Container Tools RPM メタパッケージを利用できます。Buildah パッケージはバージョン v1.41.0 に更新され、Skopeo はバージョン 1.20.0 に更新されました。
Podman リリース v5.6 には、以前のバージョンに対する次の主なバグ修正と機能拡張が含まれています。
-
Quadlet を管理するための新しいコマンドセットとして、
podman quadlet install(現在のユーザーに新しい Quadlet をインストールする)、podman quadlet list(インストールされている Quadlet をリスト表示する)、podman quadlet print(Quadlet ファイルの内容を出力する)、およびpodman quadlet rm(Quadlet を削除する) が追加されました。 -
podman kube playコマンドは、io.podman.annotations.cpuset/$ctrnameおよびio.podman.annotations.memory-nodes/$ctrnameアノテーションを使用して、コンテナーの実行を特定の CPU コアと特定のメモリーノードに制限できます。 -
podman kube playコマンドは、Pod YAML のlifecycle.stopSignalフィールドをサポートしており、コンテナーを停止するために使用するシグナルを指定できます。 -
podman volume importコマンドとpodman volume exportコマンドは、リモート Podman クライアントで使用できます。 -
podman volume createコマンドは、ボリュームの作成に使用する UID と GID を設定するための 2 つの新しいオプション--uidと--gidを受け入れます。 -
podman secret createコマンドに新しいオプション--ignoreが追加されました。これにより、指定した名前のシークレットがすでに存在する場合でもコマンドが成功するようになりました。 -
podman pullコマンドに、プルポリシーを設定するための新しいオプション--policyが追加されました。 -
podman updateコマンドに、特定のコンテナーを指定する代わりに最新のコンテナーを更新するための新しいオプション--latestが追加されました。 -
アーティファクトを操作するための API エンドポイント一式が追加されました。これには、アーティファクトの検査 (
GET /libpod/artifacts/{name}/json)、すべてのアーティファクトのリスト表示 (GET /libpod/artifacts/json)、アーティファクトのプル (POST /libpod/artifacts/pull)、アーティファクトの削除 (DELETE /libpod/artifacts/{name})、リクエストボディーに含まれる tar ファイルからのアーティファクトの追加 (または既存のアーティファクトへの追加) (POST /libpod/artifacts/add)、レジストリーへのアーティファクトのプッシュ (/libpod/artifacts/{name}/push)、およびアーティファクトの内容の取得 (GET /libpod/artifacts/{name}/extract) が含まれます。 -
OCI アーティファクトの内容の一部またはすべてをディスク上の場所にコピーするための新しいコマンド
podman artifact extractが追加されました。 -
podman create、podman run、podman pod createの--mountオプションは、OCI アーティファクトをコンテナーにマウントするための新しいマウントタイプ--mount type=artifactをサポートしています。 -
podman artifact addコマンドは、既存のアーティファクトに新しいファイルを追加する--appendと、アーティファクトに追加するファイルの MIME タイプを指定する--file-typeという 2 つの新しいオプションを備えています。 -
podman artifact rmコマンドに、ローカルストア内のすべてのアーティファクトを削除する新しいオプション--allが追加されました。 -
podman kube generateコマンドとpodman kube playコマンドは、新しいアノテーションio.podman.annotation.pids-limit/$containernameをサポートしています。これにより、kube generateとkube playを実行しても、コンテナーの PID 制限が保持されます。 -
Quadlet の
.containerユニットは、Memory=(作成されたコンテナーの最大メモリーを設定する)、ReloadCmd(systemdExecReloadを介してコマンドを実行する)、およびReloadSignal(systemdExecReloadを介して指定されたシグナルでコンテナーを強制終了する) の 3 つの新しいキーをサポートしています。 -
Quadlet の
.container、.image、および.buildユニットは、Retry(失敗時にイメージのプルを再試行する回数) とRetryDelay(再試行間の遅延) という 2 つの新しいキーをサポートしています。 -
Quadlet の
.podユニットは、Pod のホスト名を設定するための新しいキーHostName=をサポートしています。 -
Quadlet ファイルは、
Installセクションで新しいオプションUpheldByをサポートするようになりました。これは systemd のUpholdsオプションに相当するものです。 -
systemd 依存関係として指定された Quadlet ユニットの名前が自動的に変換されます。たとえば、
Wants=my.containerは有効です。
主な変更点の詳細は、アップストリームのリリースノート を参照してください。
ADD および COPY 命令が、--link オプションをサポートするようになりました
Buildah と Podman が、Containerfiles 内の ADD および COPY 命令の --link フラグをサポートするようになりました。このフラグを使用すると、ビルドされるイメージに新しいコンテンツが独立したレイヤーとして追加されます。
新しいコンテナーイメージが利用可能になりました
Red Hat Ecosystem Catalog に、以下の新しいコンテナーイメージが登録されています。
-
ubi-stig: STIG によるハードニングが適用された Universal Base Image。コンテナー化されたアプリケーション、ミドルウェア、およびユーティリティーのセキュアな基盤となります。 -
valkey-8: コンテナーとして利用できる高度なキーバリューストア。インメモリデータセットを使用して優れたパフォーマンスを実現します。鍵には、文字列、ハッシュ、リスト、セット、およびソートセットを含めることができるため、データ構造サーバーと呼ばれています。 -
gcc-toolset-15-toolchain: C および C++ アプリケーションの構築に使用される必須のライブラリーとツールを含むベースイメージ。 -
nodejs-24: さまざまな Node.js 24 アプリケーションとフレームワークを構築および実行するためのベースプラットフォームを提供します。これは Chrome の JavaScript ランタイムを基盤としています。イベント駆動型のノンブロッキング I/O モデルを通じて高速でスケーラブルなネットワークアプリケーションを容易に実現します。データ集約型のリアルタイム分散アプリケーションに最適です。 -
nodejs-24-minimal: さまざまな Node.js 24 アプリケーションとフレームワークを実行するためのベースプラットフォームを提供します。これは Chrome の JavaScript ランタイムを基盤としています。イベント駆動型のノンブロッキング I/O モデルを通じて高速でスケーラブルなネットワークアプリケーションを容易に実現します。データ集約型のリアルタイム分散アプリケーションに最適です。 -
dotnet-100、dotnet-100-aspnet、dotnet-100-runtime: ベースバージョン、ASP.NET バージョン、ランタイムバージョンを含む .NET 100 イメージが利用可能になりました。
Jira:RHELDOCS-21211[1]
RHEL Image Mode が、実行時のルートレベルのディレクトリーとシンボリックリンクの作成をサポートするようになりました
このリリースでは、RHEL Image Mode を使用して、システムのデプロイ後にルートレベルのディレクトリーとシンボリックリンクを作成してから、ファイルシステムを読み取り専用モードに戻すことができます。その結果、ファイルシステムの要件がそれぞれ異なる複数のデプロイメント環境で、単一のベースイメージを使用できるようになります。
Jira:RHELDOCS-21230[1]
bootc-image-builder がデフォルトでローカルコンテナーストレージを使用します
このリリースでは、bootc-image-builder ツールはデフォルトでローカルモードで動作するようになりました。つまり、リモートレジストリーからコンテナーイメージをプルしなくなりました。ディスクイメージをビルドするには、ディスクイメージをビルドする前に、システムのローカルコンテナーレジストリーにベース bootc コンテナーイメージを事前にロードする必要があります。自動イメージプルに依存する既存のワークフローがある場合は、そのワークフローを更新する必要があります。この変更により、ビルドプロセス中の外部ネットワークへの依存が減り、セキュリティーが向上します。
Jira:RHELDOCS-21218[1]