13 コンテナ・レジストリ
Podmanで構成されたコンテナ・レジストリを使用して、コンテナ・イメージをプルします。 自己ホスト・コンテナ・レジストリを作成し、レジストリ・ミラーを作成します。
コンテナ・レジストリは、Open Container Initiativeイメージのストアです。 コンテナ・イメージは、実行するコンテナの作成に使用する読取り専用テンプレートです。 レジストリ内のコンテナ・イメージは、必要に応じてデプロイできます。
デフォルトでは、Oracle Linuxシステムは、一般的に使用される次のレジストリへのアクセス権で構成されます:
-
Oracle Container Registry(container-registry.oracle.com)
-
Docker Hub(docker.io)
セキュリティを向上させ、不注意に侵害されたイメージを実行することに対して緩和するために署名されている場合、コンテナ・レジストリからイメージのみを信頼するようにコンテナ・ランタイムを構成できます。 詳細は、「署名付きイメージに対するPodmanの構成」を参照してください。
エンタープライズ環境では、ローカルのコンテナ・レジストリの設定も検討できます。 ローカル・コンテナ・レジストリには、カスタマイズされたコンテナから変換されたイメージを格納できます。 その後、これらのイメージを将来のコンテナ・デプロイメントに使用できます。 ローカル・コンテナ・レジストリにイメージを格納すると、一括デプロイのために実行する必要があるカスタマイズ構成の量が削減されます。 ローカル・レジストリは、アップストリーム・レジストリからプルされたイメージをキャッシュおよびホストすることもできます。これにより、ローカル・システムにまたがって一致するコンテナをデプロイすると、ネットワークのオーバーヘッドとレイテンシがさらに軽減されます。
Oracle Container Registry
Oracle Container Registryを使用して、オープン・ソースおよびライセンスのあるOracleソフトウェア・コンテナ・イメージをプルします。
Oracle Container Registryは、コンテナ・イメージを安全に格納および共有するためのオープン標準ベースのOracle管理コンテナ・レジストリ・サービスです。 Oracle Container Registryには、ライセンスされたOracleソフトウェアとオープン・ソースの両方のOracleソフトウェアが含まれ、イメージはOracleによって構築および署名されています。 コンテナ・イメージの使用には、該当するライセンスの条件が適用されます。
Oracle Container Registryは、https://container-registry.oracle.comにあります。 これには、Webインタフェースが用意されていて、組織が使用できるソフトウェアのイメージを参照および選択できます。 Oracle Container Registryは、オープン・ソースとライセンスされているOracle製品の両方のコンテナ・イメージをホストします。 ライセンス・コンテンツでは、イメージをダウンロードする前に、ライセンス契約条件を認証して同意する必要があります。 サインインする前に、認証トークンを生成する必要があります。
ノート:
オープン・ソース・コンテナ・イメージをプルするために、認証トークンを作成し、Oracle Container Registryにサインインする必要はありません。これはライセンス・イメージにのみ必要であるためです。
Oracle Container Registryのいずれかのミラーを使用すると、それぞれの地理的なリージョンでダウンロードを高速化できます。
Oracle Container Registryからのオープン・ソース・ソフトウェアのプル
イメージをプルするための正しいコマンドは、Oracle Container RegistryのWebインタフェースのリポジトリ情報ページに用意されています。 同じページで、イメージとその実行方法に関するその他の有用な情報も得られます。
Oracle Container Registryミラーを使用している場合は、次のステップのURLを変更してミラーのURLを使用します。 ミラーの使用の詳細は、Oracle Container Registryミラーの使用を参照してください。
Oracle Container Registryからイメージをプルするには、次のpodman pullコマンドを使用します。
podman pull container-registry.oracle.com/area/image:tag
areaをOracle Container Registryのリポジトリの場所に置き換え、imageをソフトウェア・イメージの名前に置き換えます。 たとえば:
podman pull container-registry.oracle.com/os/oraclelinux:9-slim
areaと imageは小文字で指定されます。 イメージを参照する場合は、使用する適切なタグを常に指定することをお薦めします。
Oracle Linuxイメージのタグ付け規則の詳細は、Oracle Linuxコンテナ・イメージのタグ付け規則を参照してください。
Oracle Container Registryからのライセンス所有ソフトウェアのプル
Oracle Container Registryには、ライセンスされている商用のOracleソフトウェア製品のイメージが含まれています。 Oracle Container Registryでライセンスされているソフトウェアのイメージをプルするには、Oracle Accountがあり、認証トークンが作成されている必要があります。 Oracleアカウントは、https://profile.oracle.com/myprofile/account/create-account.jspxで作成できます。 認証トークンの作成の詳細は、「Oracle Container Registry認証トークンの生成」を参照してください。
ノート:
オープン・ソースのOracleソフトウェア・イメージ(ライセンス供与されたソフトウェア・イメージのみ)をプルするために、Oracle Container Registryにサインインしたり、Oracle標準条件および制限事項に同意する必要はありません。
Oracle Container Registryミラーを使用している場合は、次のステップのURLを変更してミラーのURLを使用します。 ミラーの使用の詳細は、Oracle Container Registryミラーの使用を参照してください。
Oracle Container Registry認証トークンの生成
ライセンスされたソフトウェアをOracle Container Registryからプルするには、認証トークンを生成し、podman loginコマンドの使用時にpassword値として使用します。
注意:
2025-06-30以降では、Oracle Container RegistryでPodmanを認証する際に、認証トークンが受け入れられる唯一の資格証明タイプです。Oracle Container Registryミラーの使用
Oracle Container Registryには、世界中に多数のミラー・サーバーがあります。 特定のグローバル・リージョンにあるレジストリ・ミラーを使用すると、コンテナ・イメージのダウンロード・パフォーマンスを高めることができます。
使用可能なすべてのミラーと、特定のミラーからのイメージのプルに使用するコマンドをリストするには、Oracle Container RegistryのWebインタフェースにあるイメージの情報ページを参照してください。 情報ページの「タグ」表には、レジストリ・ミラーを選択するための「ミラーのダウンロード」ドロップダウン・リストが含まれています。 ミラーを選択すると、「プル・コマンド」列が変更され、選択したミラーからイメージをプルするコマンドが表示されます。
レジストリ・ミラーからライセンスされたOracleソフトウェア・イメージをダウンロードするには、まずOracle Container Registry WebインタフェースでOracle標準条件および制限事項に同意し、PodmanでOracle Container Registryにサインインする必要があります。 ライセンス・ソフトウェア・イメージのプルの詳細は、Oracle Container Registryからのライセンス・ソフトウェアのプルを参照してください。
定期的にミラーを使用する場合は、そのミラーを構成に追加して、デフォルトで検索およびプル・リクエストに使用されるようにします。 詳細は、レジストリの構成を参照してください。
例13-1ミラーからのイメージのプル
シドニー・ミラーからOracle Linux 9スリム・イメージをプルします:
podman pull container-registry-sydney.oracle.com/os/oraclelinux:9-slim
例13-2ミラーからのライセンス・イメージのプル
ライセンスされたOracleソフトウェア・イメージをプルするには、イメージをプルする前に、Oracle SSOユーザー名およびOracle Container Registry認証トークンを使用してOracle Container Registryミラーにサインインします。 イメージがプルされた後、レジストリからサインアウトすることをお薦めします。
たとえば、最新のJava Platform, Standard Edition (Java SE)イメージをプルするには:
podman login container-registry-sydney.oracle.com
podman pull container-registry-sydney.oracle.com/java/serverjre:latest
podman logout container-registry-sydney.oracle.com.oracle.com
Oracle Linuxコンテナ・イメージのタグ付け規則
Oracleでは、いくつかの規則に従ってOracle Linuxのコンテナ・イメージにタグ付けします。 ユーザーは、こうした規則に注意して、当面の目的に最適なイメージを使用することで不要な機能不全を回避し、イメージが最新のパッチを適用したソフトウェアを引き続き使用できるようにする必要があります。
slimタグ
Oracleでは、各Oracle Linuxリリースの最小限の圧縮バージョンをリリースします。 これらのイメージには、コンテナ内で実行し、さらに多くのパッケージのインストールを実行するための十分なOSが含まれています。 こうしたイメージは、ビルドで一般的に使用する推奨イメージで、スクリプト形式のインストールが使用される可能性があります。 このタグを使用するイメージは、最新の更新レベルで維持されます。
たとえば、最新バージョンのOracle Linux 9 slimイメージを使用する場合は、9-slimタグを使用します。 Oracle Linux 10スリム・イメージの最新バージョンを使用するには、10-slimタグを使用します。
FIPS準拠バージョンのイメージは、slim-fipsタグでタグ付けされます。 これらのイメージには、準拠した暗号化パッケージ・バージョンと、コンテナFIPS準拠に必要な初期イメージ設定のほとんどが含まれています。 これらのイメージを使用するには、ホスト・システムでFIPSモードを有効にする必要があります。
例13-3 Oracle Linux 9スリム・イメージのプル
最新バージョンのOracle Linux 9スリム・イメージをプルします:
podman pull oraclelinux:9-slim
一般的なOracle Linuxリリースのタグ
Oracle Linuxイメージはリリース・レベルでタグ付けされており、常に対応する最新の更新レベルにマップされるように維持されます。 スリム・イメージで提供されているバージョンよりも完全なOSが必要な場合は、リリース・タグを使用して、そのOracle Linuxイメージの最新イメージを取得します。
例13-4最新のOracle Linux 9イメージのプル
Oracle Linux 9の最新の更新リリース・イメージをプルします:
podman pull oraclelinux:9
Oracle Linuxの更新レベルのタグ
Oracle Linuxイメージは、更新レベルでタグ付けされます。 その他の記述されたタグは、Oracle Linuxイメージの最新または最新の更新レベルにマップされます。
警告:
特定の更新レベルを必要とする特定のユース・ケースがないかぎり、コンテナ・ファイル内またはビルド内で更新レベル・タグを直接使用しないでください。 一般的なユースケースとして、Oracle Linuxの特定の更新レベルにのみ存在する問題や不具合を解決する場合が挙げられます。
更新レベルのタグを使用すると、パッチが適用されていないソフトウェアがコンテナで実行され、セキュリティの問題やソフトウェアの不具合にさらされる可能性があります。
更新レベルのタグには、更新レベルを示すドット表記法を使用します。 たとえば、Oracle Linux 8.10は8.10タグを使用して示されます。
podman pull oraclelinux:8.10latestタグ
重要:
Oracleでは、このタグをOracle Linuxのイメージに提供していません。 かわりに、slimイメージまたはリリース・タグを使用してください。 また、別の配布イメージまたはソフトウェア・イメージを操作する場合、ユーザーは、このタグに依存しないようにすることもお薦めします。
デフォルトの使用は、多くの場合に重大な混乱を引き起こし、エンド・ユーザーのビルドとスクリプト化された機能が中断されることがあります。 このため、イメージ・タグを使用する際のベスト・プラクティスを推奨するために、OracleではOracle Linuxイメージにlatestタグは提供されません。
このタグが使用できない理由を説明するために、このヘルプに関してOracleが判断した根拠は次のとおりです。
-
latestタグを使用すると、更新レベルではなくディストリビューション・リリース間で重大な飛び越しが発生する可能性があります。 これは、多くの場合、latestタグを選択するときにユーザーが意図することではありません。また、ツールによってはタグをまったく指定しないことでこのタグにフォールバックすることがあります。 想定される機能はリリース間で大幅に変化していて、コマンド、オプション、構成および使用可能なソフトウェアに変更が加えられていることがあります。 -
特定のビルドに使用された
latestイメージを識別する簡単な方法がないため、2つの最終ビルド・イメージの違いを確認することが困難になります。 この問題追跡の変更により、新しいビルドが失敗した場合に、既知の動作しているベース・イメージにロールバックすることも困難になります。 -
latestタグによるイメージのタグ付けは自動ではなく、latestとしてタグ付けされたイメージが更新されていないときに、それよりも新しいイメージが使用可能になっている可能性があります。 そのために、予期しない結果を招くことがあります。 -
すべてのツールが
latestタグを同様に扱うわけではありません。 一部のツールはアップストリームのレジストリから常にlatestタグの付いたイメージをプルするようにデフォルト設定されていて、その他のツールは期限切れになっていたとしてもローカルに格納されたlatestタグの付いたイメージがデフォルトに設定されていることがあります。
この決定によって、latestタグにフォールバックする一部のツールでは、イメージにタグが指定されていないときにエラーが発生する可能性があります。 たとえば、次のコマンドはエラーを返します。
podman pull docker.io/library/oraclelinuxエラーは次のようになります。
Trying to pull docker.io/library/oraclelinux:latest...
Error: initializing source docker://oraclelinux:latest: reading manifest latest in
docker.io/library/oraclelinux: manifest unknown使用するイメージには必ず適切なタグを指定してください。 たとえば:
podman pull container-registry.oracle.com/os/oraclelinux:9Docker Hub
Docker Hubレジストリを使用して、ソフトウェア・コンテナ・イメージをプルします。
Docker Hubレジストリは、主にDockerでの使用を目的とするがPodmanとの互換性がある多くのソフトウェア・イメージを提供しています。 Docker Hubレジストリには、使用可能なイメージを参照するためのWebインタフェースが用意されています。
Docker Hubには、企業で使用する可能性のある商用Oracleソフトウェア製品のDockerイメージが含まれています。
Docker Hubでホストされているイメージにアクセスするには、有効なDockerアカウントでサインインする必要があります。 Dockerアカウントの作成およびDocker Hubの使用の詳細は、Docker Hubのドキュメントを参照してください。
Docker Hubには、インストールするDocker認定イメージの選択に使用できるWebインタフェースがあります。 一部のイメージでは、「チェックアウトに進む」を選択して、適用される可能性のある条件に同意するか、イメージにアクセスする前に必要に応じて支払を行う必要があります。
トランザクションの終了時に、イメージは「自分のコンテンツ」領域に格納され、後で再確認できます。 各イメージには説明と設定手順が示されています。
podman loginコマンドを使用して、Docker Hubにサインインし、イメージをプルします。 たとえば:
podman login docker.iopodman pull docker.io/library/alpine:latestpodman logout docker.io署名付きイメージに対するPodmanの構成
Podmanを設定して、コンテナ・レジストリの検証済公開キーによって署名されたイメージをプルします。 署名されていないイメージはプルできません。
Podmanは、イメージに署名があり、提示された署名がローカルに格納されている公開キーに対して検証できる場合にのみ、リモート・レジストリからのイメージを信頼するように構成できます。 この構成オプションは、セキュリティの向上に役立ち、危険にさらされたイメージをインフラストラクチャで実行してしまう不注意を軽減できます。
イメージは、Oracle Linux yumサーバーで使用可能になるパッケージと同様の方法で署名されます。 GPGキーは、レジストリで提供されるイメージの署名に使用されます。 イメージごとのデジタル署名は、HTTPSを使用してアクセス可能な署名ストアに格納されます。 イメージ・ダイジェストに対する署名の検証に使用する公開GPGキーは、Podmanがインストールされているシステムで使用可能にしておく必要があります。
次のステップでは、リモート・レジストリのイメージをローカルで使用する前に、そのイメージの署名と検証を要求するようにPodmanホストを構成する方法を示します。
レジストリの構成
コンテナ・レジストリ構成ファイルを編集して、環境のレジストリ・オプションを設定します。 これは、システム全体およびユーザーに対して設定できます。
デフォルトのレジストリ設定を構成するには、TOML形式の/etc/containers/registries.confファイルを編集します。 構成ファイルは、使用可能なオプションについて説明するコメントが付いています。 システム全体の構成ファイル(/etc/containers/registries.conf)を$HOME/.config/containers/registries.confのユーザーのディレクトリにコピーすることで、ユーザー固有のレジストリ構成ファイルを作成できます。 たとえば:
cp /etc/containers/registries.conf $HOME/.config/containers/registries.conf
コンテナ・レジストリ構成ファイル内のすべてのオプションの詳細は、アップストリーム・ドキュメントまたはcontainers-registries.conf(5)マニュアル・ページを参照してください。
登録のリスト
コンテナ・イメージの検索時に使用するように構成されたレジストリを表示するには、次を使用します:
podman info --format='{{.Registries}}'
出力は次のようになります:
map[search:[container-registry.oracle.com docker.io]]
レジストリ順序の設定
unqualified-search-registries = ["container-registry.oracle.com", "docker.io"]レジストリは、このリストで定義した順序で順番に検索されます。 ローカル・レジストリが存在する場合は、リストの先頭に追加して、最初に検索するレジストリにします。
レジストリの追加
Podmanにレジストリを追加するには、Podmanシステム全体またはユーザー構成ファイルを編集して、unqualified-search-registriesエントリにレジストリを含めます。 コンテナ検索およびプルを実行する順序で追加します。 たとえば:
unqualified-search-registries = ["localhost:5000", "myregistry.example.com:5000", container-registry.oracle.com", "docker.io"]
レジストリがセキュアでないレジストリの場合は、[[registry]]セクションも編集し、レジストリの場所にinsecure = trueオプションを含めます。
[[registry]]
location = "localhost:5000"
insecure = true