コンテナ

この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モジュール」を参照してください。

  • createsetremoveおよび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