コンテナ
このOracle Linux 8リリースでは、コンテナに関連する次の機能、拡張機能および変更が導入されています。
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がサポートされるようになりました。 -
podman kube playコマンドで新しい--publish-allオプションがサポートされるようになりました。このオプションを使用して、ホスト上のすべてのcontainerPortsを公開します。
主な変更点の詳細は、https://github.com/containers/podman/blob/main/RELEASE_NOTES.md#490を参照してください。
SQLiteデフォルトのPodmanデータベース
コンテナ・メタデータの操作時に安定性、パフォーマンスおよび一貫性を向上させるPodmanのSQLiteデータベース・バックエンドが完全にサポートされるようになりました。
database_backendオプションを使用して、containers.confファイルでデータベース・バックエンドを明示的に指定できます。使用可能な値は次のとおりです:
- "" 空の値を指定した場合のデフォルト値は
sqliteです。以前のOracle LinuxバージョンからOracle Linux 8.10にアップグレードし、空の値を指定した場合で、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
EOF