コンテナ
この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