4.19. コンテナー
新しい podman
RHEL システムロールが利用可能になりました。
Podman 4.2 以降では、podman
システムロールを使用して、Podman 設定、コンテナー、および Podman コンテナーを実行する systemd
サービスを管理できるようになりました。
Jira:RHELPLAN-118705
Podman は監査用のイベントをサポートするようになりました。
Podman v4.4 以降、コンテナーに関するすべての関連情報を 1 つのイベントと journald
エントリーから直接収集できるようになりました。Podman 監査を有効にするには、container.conf
設定ファイルを変更し、events_container_create_inspect_data=true
オプションを [engine]
セクションに追加します。データは JSON 形式であり、podman container inspect
コマンドからのものと同じです。詳細は、Podman 4.4 の新しいコンテナーイベントと監査機能の使用方法 を参照してください。
Jira:RHELPLAN-136602
container-tools
メタパッケージが更新された
Podman、Buildah、Skopeo、crun、runc ツールを含む container-tools
RPM メタパッケージが利用可能になりました。この更新では、以前のバージョンに対する一連のバグ修正と機能拡張が適用されます。
Podman v4.4 の注目すべき変更点は次のとおりです。
- Podman を使用して systemd サービスを簡単に作成および保守できる新しい systemd ジェネレーターである Quadlet を紹介します。
-
新しいコマンド
podman network update
が追加されました。これは、コンテナーと Pod のネットワークを更新します。 -
buildah のバージョンを表示する新しいコマンド
podman buildx version
が追加されました。 - コンテナーに起動ヘルスチェックを設定できるようになり、通常のヘルスチェックがアクティブになる前にコマンドを実行してコンテナーが完全に起動していることを確認できるようになりました。
-
podman --dns
コマンドを使用して、カスタム DNS サーバーの選択をサポートします。 - Fulcio と Rekor を使用した sigstore 署名の作成と検証が利用できるようになりました。
- Docker との互換性が向上しました (新しいオプションとエイリアス)。
-
Podman の Kubernetes 統合の改善 - コマンド
podman kube generate
およびpodman kube play
が利用可能になり、podman generate kube
およびpodman play kube
コマンドに置き換わりました。podman generate kube
およびpodman play kube
コマンドは引き続き使用できますが、新しいpodman kube
コマンドを使用することを推奨します。 -
podman kube play
コマンドによって作成された Systemd 管理の Pod は、io.containers.sdnotify
アノテーション (または特定のコンテナーの場合はio.containers.sdnotify/$name
) を使用して sd-notify と統合されるようになりました。 -
podman kube play
によって作成された Systemd 管理の Pod は、io.containers.auto-update
アノテーション (または特定のコンテナーの場合はio.containers.auto-update/$name
) を使用して自動更新できるようになりました。
Podman がバージョン 4.4 にアップグレードされました。注目すべき変更点の詳細は、アップストリームリリースノート を参照してください。
Jira:RHELPLAN-136607
Aardvark と Netavark がカスタム DNS サーバーの選択をサポートするようになりました。
Aardvark および Netavark ネットワークスタックは、ホスト上のデフォルトの DNS サーバーの代わりに、コンテナーのカスタム DNS サーバーの選択をサポートするようになりました。カスタム DNS サーバーを指定するには、次の 2 つのオプションがあります。
-
containers.conf
設定ファイルにdns_servers
フィールドを追加します。 -
新しい
--dns
Podman オプションを使用して、DNS サーバーの IP アドレスを指定します。
--dns
オプションは、container.conf
ファイル内の値をオーバーライドします。
Jira:RHELPLAN-138024
Skopeo は、sigstore キーペアの生成をサポートするようになりました。
skopeo generate-sigstore-key
コマンドを使用して、sigstore 公開キー/秘密キーのペアを生成できます。詳細は、skopeo-generate-sigstore-key
man ページを参照してください。
Jira:RHELPLAN-151481
ツールボックスが利用可能になりました。
toolbox
ユーティリティーを使用すると、トラブルシューティングツールをシステムに直接インストールしなくても、コンテナー化されたコマンドライン環境を使用できます。Toolbox は、Podman および OCI のその他の標準コンテナーテクノロジーを基盤として構築されています。詳細は、toolbx を参照してください。
Jira:RHELPLAN-150266
コンテナーイメージに 2 桁のタグが付けられるようになりました。
RHEL 9.0 および RHEL 9.1 では、コンテナーイメージには 3 桁のタグがありました。RHEL 9.2 以降、コンテナーイメージには 2 桁のタグが付けられるようになりました。
Jira:RHELPLAN-147982
イメージに署名するための複数の信頼できる GPG キーの機能が利用可能です。
/etc/containers/policy.json
ファイルは、信頼できるキーを含むファイルのリストを受け入れる新しい keyPaths
フィールドをサポートします。このため、Red Hat の一般公開キーとベータ GPG キーで署名されたコンテナーイメージがデフォルト設定で受け入れられるようになりました。
以下に例を示します。
"registry.redhat.io": [ { "type": "signedBy", "keyType": "GPGKeys", "keyPaths": ["/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release", "/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-beta"] } ]
Jira:RHELPLAN-129327
Podman が実行前フックをサポートするようになりました。
/usr/libexec/podman/pre-exec-hooks
ディレクトリーと /etc/containers/pre-exec-hooks
ディレクトリーにある root 所有のプラグインスクリプトは、コンテナー操作の詳細な制御、特に無許可のアクションのブロックを定義します。
/etc/containers/podman_preexec_hooks.txt
ファイルは管理者が作成する必要があり、空でもかまいません。/etc/containers/podman_preexec_hooks.txt
が存在しない場合、プラグインスクリプトは実行されません。すべてのプラグインスクリプトがゼロ値を返す場合、podman
コマンドが実行されます。それ以外の場合、podman
コマンドは継承された終了コードで終了します。
Red Hat では、スクリプトを正しい順序で実行するために、DDD-plugin_name.lang
(例: 010-check-group.py
) という命名規則を使用することを推奨しています。プラグインスクリプトは作成時点で有効であることに注意してください。プラグインスクリプトの前に作成されたコンテナーは影響を受けません。
Bugzilla:2119200
sigstore 署名が利用可能になりました。
Podman 4.2 以降では、コンテナーイメージ署名の sigstore 形式を使用できます。sigstore 署名はコンテナーイメージと共にコンテナーレジストリーに格納されるため、イメージ署名を格納するために別の署名サーバーを用意する必要はありません。
Jira:RHELPLAN-74672
Toolbox は RHEL 9 コンテナーを作成できます。
以前は、Toolbox ユーティリティーは RHEL UBI 8 イメージのみをサポートしていました。このリリースでは、Toolbox は RHEL UBI 9 もサポートするようになりました。その結果、RHEL 8 または 9 に基づいて Toolbox コンテナーを作成できます。
次のコマンドは、ホストシステムと同じ RHEL リリースに基づいて RHEL コンテナーを作成します。
$ toolbox create
あるいは、特定の RHEL リリースを使用してコンテナーを作成することもできます。たとえば、RHEL 9.2 に基づいてコンテナーを作成するには、次のコマンドを使用します。
$ toolbox create --distro rhel --release 9.2
新しいパッケージ: passt
この更新では、passt
パッケージが追加され、コンテナーで passt
ルートレスネットワークバックエンドを使用できるようになります。
現在、Podman による非特権ネットワーキングのデフォルトとして使用されている Slirp
接続と比較すると、pasta
は次の拡張機能を提供します。
- スループットの向上、および近隣探索プロトコル (NDP) および DHCPv6 のサポートを含む IPv6 のサポートの向上
- IPv6 で TCP および UDP ポートのポート転送を設定する機能
pasta
を使用して Podman コンテナーに接続するには、--network pasta
コマンドラインオプションを使用します。