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]
新しい rhel9/rhel-bootc コンテナーイメージが利用可能です
rhel9/rhel-bootc コンテナーイメージが、Red Hat コンテナーレジストリーで利用可能になりました。RHEL のブート可能なコンテナーイメージを使用すると、コンテナーとまったく同じように、オペレーティングシステムを構築、テスト、およびデプロイできます。RHEL のブート可能なコンテナーイメージは、以下の機能強化により、既存のアプリケーションの Universal Base Images (UBI) とは異なります。RHEL のブート可能なコンテナーイメージには、カーネル、initrd、ブートローダー、ファームウェアなど、ブートに必要な追加コンポーネントが含まれています。既存のコンテナーイメージに変更はありません。詳細は、Red Hat Ecosystem Catalog を 参照してください。
Jira:RHELDOCS-17803[1]