4.16. コンテナー
Podman は、zstd で圧縮されたイメージのプルとプッシュをサポートする
zstd
形式で圧縮されたイメージをプルおよびプッシュできます。zstd 圧縮は、gzip よりも効率的で高速です。イメージのプルとプッシュに関連するネットワークトラフィックとストレージの量を削減できます。
Jira:RHELPLAN-154313[1]
Podman の Quadlet が利用可能になる
Podman v4.6 以降では、Quadlet を使用して、コンテナーの説明から systemd
サービスファイルを自動的に生成できます。Quadlets は、関連するコンテナーの詳細に焦点を当てて説明しており、systemd
でコンテナーを実行するという技術的な複雑さを考慮していないため、podman generate systemd
コマンドよりも使いやすい可能性があります。なお、Quadlet はルートフルコンテナーでのみ機能します。
詳細は、Quadlet upstream documentation および Make systemd better for Podman with Quadlet の記事を参照してください。
Jira:RHELPLAN-154431[1]
Container Tools パッケージが更新される
Podman、Buildah、Skopeo、crun、runc ツールを含む、更新された Container Tools パッケージが利用可能になりました。この更新では、以前のバージョンに対する一連のバグ修正と機能拡張が適用されます。
Podman v4.6 の注目すべき変更点は次のとおりです。
-
podman kube play
コマンドは、Pod のコンテナー内で使用される環境変数を Kubernetes YAML ファイルに提供する--configmap=<path>
オプションをサポートするようになりました。 -
podman kube play
コマンドは、--configmap
オプション用の複数の Kubernetes YAML ファイルをサポートするようになりました。 -
podman kube play
コマンドは、liveness プローブ内の containerPort 名とポート番号をサポートするようになりました。 -
podman kube play
コマンドは、ctrName をエイリアスとして Pod ネットワークに追加するようになりました。 -
podman kube play
およびpodman kube generated
コマンドは、SELinux ファイルタイプラベルと ulimit アノテーションをサポートするようになりました。 -
指定された名前のシークレットが存在するかを検証する、新しいコマンド
podman secret exists
が追加されました。 -
podman create
、podman run
、podman pod create
、およびpodman pod clone
コマンドは、新しいオプション--shm-size-systemd
をサポートするようになりました。これにより、systemd 固有のマウントの tmpfs サイズを制限できるようになります。 -
podman create
および podman run コマンドは、新しいオプション--security-opt label=nested
をサポートするようになりました。これにより、制限されたコンテナー内で SELinux のラベル付けが可能になります。 - Podman は、Pod 内で実行されているコンテナーの自動更新をサポートするようになりました。
-
Podman は、安定性を高めるために SQLite データベースをバックエンドとして使用できるようになりました。デフォルトは BoltDB データベースのままです。データベースを選択するには、
containers.conf
ファイルのdatabase_backend
フィールドを設定します。 -
Podman は、コンテナーの説明から
systemd
サービスファイルを自動的に生成する Quadlets をサポートするようになりました。この説明では、関連するコンテナーの詳細に焦点を当てており、systemd
でコンテナーを実行する際の技術的な複雑さは隠しています。
注目すべき変更点の詳細は、アップストリームのリリースノート を参照してください。
Jira:RHELPLAN-154443[1]
Podman が Podmansh ログインシェルをサポートするようになる
Podman v4.6 以降、Podmansh
ログインシェルを使用して、ユーザーアクセスと制御を管理できるようになりました。CGroups v2 に切り替えるには、systemd.unified_cgroup_hierarchy=1
をカーネルコマンドラインに追加します。標準のシェルコマンド (/usr/bin/bash
など) の代わりに、ログインシェルとして /usr/bin/podmansh
コマンドを使用するようにユーザーの設定を行います。ユーザーがシステムセットアップにログインすると、podmansh
コマンドはユーザーのセッションを podmansh
という名前の Podman コンテナー内で実行します。ユーザーがログインするコンテナーは、/etc/containers/systemd/users/
ディレクトリーに作成される Quadlet ファイルを使用して定義されます。これらのファイルで、[Container]
セクションの ContainerName
フィールドを podmansh
に設定します。systemd は、ユーザーセッションの開始時に podmansh
を自動的に起動し、すべてのユーザーセッションが終了するまで実行を続けます。
詳細は、Podman v4.6.0 Introduces Podmansh: A Revolutionary Login Shell を参照してください。
Jira:RHELPLAN-163002[1]
Fulcio および Rekor を使用した sigstore 署名のクライアントが利用可能になる
Fulcio および Rekor サーバーを使用すると、秘密鍵を手動で管理する代わりに、OpenID Connect (OIDC) サーバー認証に基づく短期証明書を使用して署名を作成できるようになりました。以前はテクノロジープレビューとして利用可能であった、Fulcio および Rekor を使用した sigstore 署名のクライアントが、完全にサポートされるようになりました。この追加機能はクライアント側のサポートのみであり、Fulcio サーバーや Rekor サーバーは含まれません。
policy.json
ファイルに fulcio
セクションを追加します。コンテナーイメージに署名するには、podman push --sign-by-sigstore=file.yml
または skopeo copy --sign-by-sigstore=file.yml
コマンドを使用します。ここで、file.yml
は sigstore 署名パラメーターファイルです。
署名を検証するには、policy.json
ファイルに fulcio
セクションと rekorPublicKeyPath
または rekorPublicKeyData
フィールドを追加します。詳細は、containers-policy.json
の man ページを参照してください。
Jira:RHELPLAN-160659[1]