6.23. コンテナー
Image Mode for RHEL が FIPS モードをサポートする
この機能拡張により、bootc イメージを構築するときに FIPS モードを有効にして、FIPS 承認モジュールのみを使用するようにシステムを設定できるようになります。bootc-image-builder
を使用することもできますが、その場合は Containerfile 設定で FIPS 暗号化ポリシーを有効にする必要があります。または、RHEL Anaconda インストールを使用することもできますが、その場合は Containerfile で FIPS モードを有効にするだけでなく、システムインストールの起動時に fips=1
カーネル引数を追加する必要もあります。詳細は、FIPS モードを有効にしたシステムのインストール を参照してください。
以下は、fips=1
カーネル引数を有効にするための指示を含む Containerfile です。
01-fips.toml
の内容は次のとおりです。
kargs = ["fips=1"]
kargs = ["fips=1"]
Jira:RHELDOCS-18585[1]
bootc-image-builder を使用した VMDK の作成とデプロイのサポート
この機能拡張により、bootc-image-builder
ツールを使用して bootc イメージから仮想マシンディスク (VMDK) を作成し、VMDK イメージを VMware vSphere にデプロイできます。
Jira:RHELDOCS-18398[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
がサポートされます。
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 へのアップグレード後も変更されません。
Podman v5.0 のデフォルト設定の変更
RHEL 10.0 では、Podman v5.0 のデフォルト設定が次のように変更されます。
- デフォルトでは cgroups v1 の代わりに cgroups v2 が使用されます。
-
pasta
は、slirp4netns
の代わりにルートレスコンテナーで使用されるデフォルトのネットワークです。
新しい rhel10/rteval
コンテナーイメージ
Red Hat Container Registry でリアルタイムの registry.redhat.io/rhel10/rteval
コンテナーイメージを使用して、スタンドアロンの RHEL インストールのレイテンシー分析を実行できます。rhel10/rteval
コンテナーイメージを使用すると、コンテナー化されたセットアップ内でレイテンシーテストを実行し、このようなソリューションがリアルタイムワークロードで実行可能かどうかを判断したり、rteval
のベアメタル実行の結果を比較したりできます。この機能を使用するには、リアルタイムサポート付きの RHEL をサブスクライブしてください。チューニングガイドラインは提供されていません。
Jira:RHELDOCS-18522[1]
--compat-volumes
オプションが Podman と Buildah で利用可能になる
新しい --compat-volumes
オプションは、buildah build
、podman build
、および podman farm build
コマンドで使用できます。このオプションは、VOLUME
命令を使用してマークされたディレクトリーの内容に対して特別な処理をトリガーし、その後その内容は ADD
および COPY
命令を使用しなければ変更できなくなります。これらの場所で RUN
命令により加えられた変更はすべて破棄されます。以前はそれがデフォルトの動作でしたが、デフォルトで無効になっています。
macvlan
および ipvlan
ネットワークインターフェイス名は、containers.conf
で設定可能
macvlan
および ipvlan
ネットワークを指定するには、containers.conf
設定ファイルの新しい interface_name
フィールドを使用して、コンテナー内に作成されたネットワークインターフェイスの名前を調整します。
Jira:RHELDOCS-18769[1]
bootc-image-builder
を使用した GCP イメージの構築のサポート
bootc-image-builder
ツールを使用すると、.gce
ディスクイメージを生成し、Google Compute Engine (GCE) プラットフォームでインスタンスをプロビジョニングできます。
Jira:RHELDOCS-18472[1]
Podman が zstd:chunked
で圧縮されたイメージのプッシュとプルをサポートするようになる
zstd:chunked
形式で圧縮されたイメージをプッシュしてイメージサイズを縮小し、部分的なプルを使用できます。
Container Tools パッケージが更新される
Podman、Buildah、Skopeo、crun
、runc
ツールを含む、更新された Container Tools RPM メタパッケージを利用できます。Buildah はバージョン 1.39.0 に更新され、Skopeo はバージョン 1.18.0 に更新されました。Podman v5.4 には、以前のバージョンに対する次の注目すべきバグ修正と機能拡張が含まれています。
-
podman update
コマンドは、ヘルスチェックに関連するさまざまなオプションをサポートします。新しいヘルスチェックを定義する--health-cmd
や、既存のヘルスチェックを無効にする--no-healthcheck
などです。これらのオプションを使用すると、実行中のコンテナーのヘルスチェックを簡単に追加、変更、または無効化できます。詳細は、podman-update(5)
man ページを参照してください。 -
podman run
、podman create
、およびpodman volume create
コマンドの--mount type=volume
オプションは、コンテナー内のボリュームのサブセットのみを表示する新しいオプションsubpath=
をサポートします。 -
podman run
、podman create
、およびpodman pod create
コマンドの--userns=keep-id
オプションは、ユーザー名前空間のサイズを設定するための新しいオプション--userns=keep-id:size=
をサポートします。 -
podman kube play
コマンドは、Container Device Interface (CDI) デバイスをサポートします。 -
podman run
、podman create
、podman pod create
コマンドは、コンテナー内の/etc/hosts
に使用されるベースファイルを定義する新しいオプション--hosts-file
をサポートします。 -
podman run
、podman create
、podman pod create
コマンドは、コンテナー内の/etc/hostname
の作成を無効にする新しいオプション--no-hostname
をサポートします。 -
podman network create
コマンドは、ブリッジネットワークの新しいオプション--opt mode=unmanaged
をサポートします。これにより、Podman はシステム上の既存のネットワークブリッジを変更せずに使用できるようになります。 -
podman run
、podman create
、およびpodman pod create
の--network
オプションは、ブリッジネットワークの新しいオプションhost_interface_name
を受け入れます。これは、コンテナーの外部に作成されたネットワークインターフェイスの名前を指定します。 -
podman manifest rm
コマンドは、存在しないマニフェストを削除するときに正常に続行するための新しいオプション--ignore
をサポートします。 -
podman system prune
コマンドは、途中で終了したビルドから残ったビルドコンテナーを削除するための新しいオプション--build
をサポートします。 - Podman はコンテナーのホスト名を Netavark に渡し、Netavark はそれをコンテナーの DHCP 要求に使用します。
-
パッケージ作成者は、Makefile から podman をビルドするときに
BUILD_ORIGIN
環境変数を設定できます。これにより、Podman バイナリーをビルドしたユーザーに関する情報が提供され、この情報はpodman version
コマンドとpodman info
コマンドに表示されます。この情報を含めることで、メンテナーによるビルドとインストールのソースと方法の特定に役立ち、バグ報告を支援できます。 -
podman kube generate
コマンドとpodman kube play
コマンドで、Kubernetes Job YAML を作成して実行できます。 -
podman kube generate
コマンドには、生成された YAML 内の Pod とコンテナーのユーザー名前空間に関する情報が含まれます。podman kube play
コマンドは、この情報を使用して、YAML に基づいて新しい Pod を作成するときにユーザー名前空間設定を複製します。 -
podman kube play
コマンドは、Kubernetes ボリュームのイメージタイプをサポートします。 -
Quadlet によって生成される
systemd
ユニットのサービス名は、サポートされているすべての Quadlet ファイルのServiceName
キーを使用して設定できます。 -
Quadlet は、すべての Quadlet ファイルでサポートされている新しいキー
DefaultDependencies
を使用して、network-online.target
への暗黙的な依存関係を無効化できます。 -
Quadlet
.container
ファイルと.pod
ファイルでは、コンテナーまたは Pod にホストを追加するための新しいキーAddHost
がサポートされます。 -
Quadlet
.container
および.pod
ファイル内のPublishPort
キーの値に変数を受け入れることができます。 -
Quadlet
.container
ファイルでは、コンテナーのコントロールグループを設定し、コンテナーが属する Pod で起動されるかどうかを設定する 2 つの新しいキー (CgroupsMode
とStartWithPod
) がサポートされます。 -
Quadlet
.container
ファイルは、Network キー内で共有するコンテナーの.container
ファイルを指定することにより、別のコンテナーのネットワークを使用できます。 -
Quadlet
.container
ファイルでは、.image
ターゲットを指定したMount=type=image
キーを使用して、.image
ファイルによって管理されるイメージをコンテナーにマウントできます。 -
Quadlet
.pod
ファイルでは、Pod のDNS
、静的 IP、およびユーザー名前空間設定を設定するための 6 つの新しいキー (DNS
、DNSOption
、DNSSearch
、IP
、IP6
、UserNS
) がサポートされます。 -
Quadlet
.image
ファイルでは、ImageTag
キーを複数回指定することで、イメージを複数回提供できます。 -
Quadlet は、
$HOME/containers/systemd
および/etc/containers/systemd/users
などの既存のディレクトリーだけでなく、/run/containers/systemd
ディレクトリーにも配置できます。 - Quadlet は、シンボリックリンクであるユニットディレクトリーのサブディレクトリーを適切に処理します。
-
podman manifest inspect
コマンドの出力にマニフェストのアノテーションが含まれます。 -
podman create
、podman run
、podman pod create
の--add-host
オプションでは、セミコロンで区切られた複数のホスト名の指定をサポートします (例:podman run --add-host test1;test2:192.168.1.1
)。 -
podman run
コマンドとpodman create
コマンドは、ヘルスチェックのロギングを設定するための 3 つの新しいオプションをサポートします。具体的には、--health-log-destination
(ログを保存する場所を指定)、--health-max-log-count
(ヘルスチェックのログがいくつ保存されるかを指定)、および--health-max-log-size
(ヘルスチェックログの最大サイズを指定) です。
重要な変更の詳細は、アップストリームのリリースノート を参照してください。
コンテナーツールがコンテナーイメージの検証に sigstore 署名を使用する
この更新により、コンテナーイメージの検証には、GPG 署名 (シンプル署名とも呼ばれる) の代わりに sigstore 署名が使用されるようになりました。
Podman ヘルスチェックログ出力はカスタマイズ可能
この更新前は、コンテナーにヘルスチェックが設定されている場合、出力は podman inspect
コマンドを使用してアクセスできるコンテナー状態ファイルにのみ記録されていました。これにより、デバッグのプロセスが複雑でした。この機能拡張により、--health-log-destination
、--health-max-log-count
、--health-max-log-size
オプションを指定した podman update
コマンドを使用して、ヘルスチェックログ出力を設定できるようになりました。
詳細は、podman-update
の man ページを参照してください。
Jira:RHEL-24623[1]
単一のコマンドでのコンテナーイメージのデプロイが可能
単一のコマンドを使用して、コンテナーイメージを RHEL クラウドインスタンスにデプロイできます。system-reinstall-bootc
コマンドは、次のアクションを実行します。
- 提供されたイメージをプルして、SSH キーをセットアップしたり、システムにアクセスしたりする。
-
すべてのバインドマウントおよび SSH キーを設定して、
bootc install to-existing-root
コマンドを実行する。
Jira:RHELDOCS-19516[1]
カスタム bootc
イメージのゼロからの作成がサポートされる
bootc
イメージをゼロから作成し、イメージの内容を完全に制御し、特定の要件を満たすようにシステム環境をカスタマイズできます。bootc-base-imgectl
コマンドを使用すると、既存の bootc
ベースイメージに基づいてカスタム bootc
イメージを作成できます。Bootc Image from Scratch はコンテナーイメージから派生しており、デフォルトのベースイメージからの更新を自動的に受信しません。このような更新を含めるには、コンテナーパイプラインの一部として手動で組み込む必要があります。さらに、bootc コンテナーイメージの bootc-base-imgectl
の rechunk
サブコマンドを使用して、必要に応じてイメージを最適化または再ビルドできます。
Jira:RHELDOCS-19825[1]
新しいイメージビルドの進行状況バーが bootc-image-builder
で利用可能になる
以前は、ログを調べることで、イメージのビルドが進行中であるかどうかを確認できませんでした。今回の機能拡張により、bootc-image-builder
を使用して作成したイメージビルドの進捗を確認できるようになりました。イメージのビルド時に --progress=verbose
引数を使用して以前の動作に戻すことができます。
Jira:RHELDOCS-20170[1]
podman pod inspect
コマンドが Pod の数に関係なく JSON 配列を提供する
以前は、単一の Pod を検査するときに podman pod inspect
コマンドは JSON 配列を除外していました。この更新により、podman pod inspect
コマンドは、検査された Pod の数に関係なく、出力に JSON 配列を生成します。
Jira:RHELDOCS-18770[1]