コンテナ
このOracle Linux 9リリースでは、コンテナに関連する次の機能、拡張機能および変更が導入されています。
Podman containers.confモジュール
Podmanは、containers.confモジュール・ファイルを使用して実行し、あらかじめ決められた構成セットをオンデマンドでロードできます。モジュール・ファイルを指定すると、システムおよびユーザーの構成ファイルがオーバーライドされます。
これらのファイルは、次のディレクトリに作成できます:
-
ルートレス・ユーザーの場合、構成ファイルをユーザーのホーム・ディレクトリに配置します。たとえば、次のようになります
$HOME/.config/containers/containers.conf.modules -
ルート・ユーザーの場合、構成ファイルを次のいずれかのディレクトリに配置します:
/etc/containers/containers.conf.modules /usr/share/containers/containers.conf.modules
podman --module <your_module_name>
前述のコマンドで、 -
--moduleは、モジュールを指定します。このオプションは、必要に応じて複数回使用できます。 -
<your_module_name>はモジュールへのパスであり、モジュール名は構成ファイルの名前です。パスには、絶対パスと相対パスのどちらを指定してもかまいません。モジュール・パスが絶対パスである場合、モジュールは直接ロードされます。モジュール・パスが相対パスである場合、前述のルートレスまたはルート・ユーザー・モジュール・ディレクトリに解決されます。パスは -
$HOMEディレクトリに含まれるモジュールは、/etc/および/usr/share/ディレクトリ内のモジュールより優先されます。
詳細は、containers.confのマニュアル・ページを参照してください。
コンテナ・ツール・パッケージの更新
Podman、Buildah、Skopeo、crun、およびruncツールを含む、更新されたコンテナ・ツールのRPMメタパッケージが使用可能になりました。以前のバージョンでの主なバグ修正と拡張機能は次のとおりです:
Podman v4.9の主な変更点は次のとおりです:
-
Podmanを使用して、
podman --module <your_module_name>コマンドによってオンデマンドでモジュールをロードし、システムおよびユーザーの構成ファイルをオーバーライドできるようになりました。詳細は、「Podman containers.confモジュール」を参照してください。 -
create、set、removeおよびupdateサブコマンドのセットを含む新しいpodman farmコマンドが追加されました。これらのコマンドを使用すると、様々なアーキテクチャでpodmanを実行しているマシンにビルドを分散できます。 -
新しい
podman-composeコマンドが追加され、Docker composeなどの外部作成プロバイダを使用してワークロードの構成が実行されます。 -
podman buildコマンドでは、--layer-labelおよび--cwオプションがサポートされるようになりました。 -
podman generate systemdコマンドは非推奨です。Quadletを使用して、systemdの下のコンテナおよびポッドを実行します。 -
podman buildコマンドでは、ヒアドキュメント構文でContainerfilesがサポートされるようになりました。詳細は、「Containerfileの複数行の命令」を参照してください。 -
podman kube playコマンドで新しい--publish-allオプションがサポートされるようになりました。このオプションを使用して、ホスト上のすべてのcontainerPortsを公開します。
主な変更点の詳細は、https://github.com/containers/podman/blob/main/RELEASE_NOTES.md#470%22を参照してください。
SQLiteデフォルトのPodmanデータベース
コンテナ・メタデータの操作時に安定性、パフォーマンスおよび一貫性を向上させるPodmanのSQLiteデータベース・バックエンドが完全にサポートされるようになりました。
database_backendオプションを使用して、containers.confファイルでデータベース・バックエンドを明示的に指定できます。使用可能な値は次のとおりです:
- "" 空の値を指定した場合のデフォルト値は
sqliteです。以前のOracle Linuxバージョンからアップグレードし、空の値を指定した場合で、BoltDBがすでに以前のバージョンのシステムに存在している場合、デフォルト値はboltdbです。これにより、下位互換性が有効になります。BoltDBが以前のバージョンのOracle Linuxにない場合は、sqliteが使用されます。 - "sqlite" Podmanのデータベース・バックエンドはSQLiteを使用します。
- "boltdb" Podmanのデータベース・バックエンドはBoltDBを使用します
SQLiteデータベース・バックエンドに切り替える前に、podman system resetコマンドを実行します。
Containerfileの複数行の命令
Containerfileファイルの複数行のヒアドキュメント命令(ここでのドキュメント表記)を使用すると、このファイルを簡略化し、複数のRUNディレクティブの実行によるイメージ・レイヤーの数を減らすことができます。
たとえば、元のContainerfileには、次のRUNディレクティブを含めることができます:
RUN dnf update
RUN dnf -y install golang
RUN dnf -y install java複数のRUNディレクティブのかわりに、ヒアドキュメント表記を使用できます:
RUN <<EOF
dnf update
dnf -y install golang
dnf -y install java
EOFpastaネットワーキング・モードが使用可能
Podman 4.4.1以降で使用可能なpastaネットワーク・モードは、デフォルトのネットワーク・モードslirp4netnsの高パフォーマンス置換であり、IPv6転送を処理できます。
podman runコマンドの使用時にこのネットワーク・モードを使用するには、次のようにpasstパッケージをインストールします:
sudo dnf install passt --network=pasta
ルートレス・ネットワーク・モードをデフォルトとして設定するには、次のエントリで/etc/containers/containers.confファイルを編集します:
[network] default_rootless_network_cmd