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 kubegenerate および podman kube play が利用可能になり、podmangenerate kube および podman play kube コマンドに置き換わりました。podman generated 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 キーペアの生成をサポートするようになりました。

skopeogenerate-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

Bugzilla:2163752

新しいパッケージ: passt

この更新では、passt パッケージが追加され、コンテナーで passt ルートレスネットワークバックエンドを使用できるようになります。

現在、Podman による非特権ネットワーキングのデフォルトとして使用されている Slirp 接続と比較すると、pasta は次の拡張機能を提供します。

  • スループットの向上、および近隣探索プロトコル (NDP) および DHCPv6 のサポートを含む IPv6 のサポートの向上
  • IPv6 で TCP および UDP ポートのポート転送を設定する機能

pasta を使用して Podman コンテナーに接続するには、--network pasta コマンドラインオプションを使用します。

Bugzilla:2209419