4.16. コンテナー
Container Tools パッケージが更新される
Podman、Buildah、Skopeo、crun、runc ツールを含む、更新された Container Tools パッケージが利用可能になりました。以前のバージョンに対する主なバグ修正および機能拡張は、以下のとおりです。
Podman v4.9 の主な変更点:
-
podman --module <your_module_name>
コマンドを使用して Podman でモジュールをオンデマンドでロードし、システム設定ファイルおよびユーザー設定ファイルをオーバーライドできるようになりました。 -
create
、set
、remove
、update
サブコマンドのセットを備えた新しいpodman farm
コマンドが追加されました。これらのコマンドを使用すると、さまざまなアーキテクチャーの podman を実行しているマシンにビルドを委託できます。 -
Docker compose などの外部 compose プロバイダーを使用して Compose ワークロードを実行する、新しい
podman-compose
コマンドが追加されました。 -
podman build
コマンドは、--layer-label
および--cw
オプションをサポートするようになりました。 -
podman generate systemd
コマンドは非推奨になりました。Quadlet を使用して、systemd
でコンテナーと Pod を実行してください。 -
podman build
コマンドは、HereDoc 構文を使用したContainerfiles
をサポートするようになりました。 -
podman machine init
およびpodman machine set
コマンドは、新しい--usb
オプションをサポートするようになりました。QEMU プロバイダーの USB パススルーを許可するには、このオプションを使用します。 -
podman kube play
コマンドは、新しい--publish-all
オプションをサポートするようになりました。このオプションを使用して、ホスト上のすべての containerPorts を公開します。
注目すべき変更の詳細は、アップストリームのリリースノート を参照してください。
Jira:RHELPLAN-167794[1]
Podman が containers.conf
モジュールをサポートするようになりました
Podman モジュールを使用して、事前に定義された設定セットをロードできます。Podman モジュールは、Tom's Obvious Minimal Language (TOML) 形式の containers.conf
ファイルです。
このモジュールは、次のディレクトリーまたはそのサブディレクトリーにあります。
-
rootless ユーザーの場合:
$HOME/.config/containers/containers.conf.modules
-
root ユーザーの場合:
/etc/containers/containers.conf.modules
、または/usr/share/containers/containers.conf.modules
podman --module <your_module_name>
コマンドを使用してオンデマンドでモジュールをロードし、システム設定ファイルおよびユーザー設定ファイルをオーバーライドできます。モジュールを操作する際には、次の点に留意してください。
-
--module
オプションを使用して、モジュールを複数回指定できます。 -
<your_module_name>
が絶対パスの場合、設定ファイルは直接ロードされます。 - 相対パスは、前述の 3 つのモジュールディレクトリーを基準にして解決されます。
-
$HOME
内のモジュールは、/etc/
および/usr/share/
ディレクトリー内のモジュールをオーバーライドします。
詳細は、アップストリームのドキュメント を参照してください。
Jira:RHELPLAN-167830[1]
Podman v4.9 RESTful API が進捗のデータを表示するようになりました
この機能拡張により、Podman v4.9 RESTful API では、イメージをレジストリーにプルまたはプッシュするときに、進捗データが表示されるようになりました。
Jira:RHELPLAN-167822[1]
SQLite は、Podman のデフォルトのデータベースバックエンドとして完全にサポートされるようになりました
Podman v4.9 では、以前テクノロジープレビューとして利用可能だった Podman の SQLite データベースバックエンドが完全にサポートされるようになりました。SQLite データベースは、コンテナーメタデータを操作する際に、より優れた安定性、パフォーマンス、一貫性を提供します。SQLite データベースバックエンドは、RHEL 8.10 の新規インストールのデフォルトバックエンドです。以前の RHEL バージョンからアップグレードする場合、デフォルトバックエンドは BoltDB になります。
containers.conf
ファイルの database_backend
オプションを使用してデータベースバックエンドを明示的に設定した場合、Podman は指定されたバックエンドを引き続き使用します。
Jira:RHELPLAN-168179[1]
管理者は nftables
を使用してファイアウォールルールの分離を設定できます。
iptables
がインストールされていないシステムでも、Podman コンテナーネットワークスタックである Netavark を使用できます。以前は、Netavark の前身であるコンテナーネットワーキングインターフェイス (CNI) ネットワーキングを使用すると、iptables
がインストールされていないシステムでコンテナーネットワーキングを設定する方法はありませんでした。この機能拡張により、nftables
のみがインストールされているシステムでも Netavark ネットワークスタックが動作するようになり、自動的に生成されたファイアウォールルールの分離が改善されます。
Jira:RHELDOCS-16955[1]
Containerfile
が複数行の命令をサポートするようになりました
Containerfile
ファイルで複数行の HereDoc 命令 (Here Document 表記) を使用すると、このファイルを簡素化し、複数の RUN
ディレクティブを実行することで発生するイメージレイヤーの数を減らすことができます。
たとえば、元の Containerfile
が次の RUN
ディレクティブを含むとします。
RUN dnf update RUN dnf -y install golang RUN dnf -y install java
複数の RUN ディレクティブの代わりに、HereDoc 表記を使用できます。
RUN <<EOF dnf update dnf -y install golang dnf -y install java EOF
Jira:RHELPLAN-168184[1]
Toolbx が利用可能になる
Toolbx を使用すると、ベースオペレーティングシステムに影響を与えることなく、開発およびデバッグのツール、エディター、ソフトウェア開発キット (SDK) を、Toolbx の完全にミュータブルなコンテナーにインストールできます。Toolbx コンテナーは、registry.access.redhat.com/ubi8.10/toolbox:latest
イメージをベースとしています。
Jira:RHELDOCS-16241[1]