動的レジストリー参照の使用

VPC の IBM Cloud Hyper Protect Virtual Servers は非推奨。 2026年2月28日現在、新しいインスタンスを作成することはできません。 既存のインスタンスは2027年2月20日までサポートされる。 その日付にまだ存在するインスタンスはすべて削除されます。 IBM Confidential Computing Container Runtime(旧称: Hyper Protect Virtual Servers )または IBM Confidential Computing Container Runtime for Red Hat Virtualization Solutions(旧称:Hyper Protect Container Runtime for Red Hat Virtualization Solutions )を使用して、ワークロードを再デプロイできます。 データ移行については、 移行ガイドを 参照してください。 詳しくは、 サービス廃止のお知らせを ご覧ください。

このチュートリアルに従って、 契約 内で動的レジストリ参照を使用する方法を学ぶことができます。

明示的レジストリー参照

通常、docker レジストリは、compose ファイル内の完全な docker URL から参照される。 以下の例を参照してください。

services:
  helloworld:
    image: docker.io/library/hello-world@sha256:53f1bbee2f52c39e41682ee1d388285290c5c8a76cc92b42687eecf38e0af3f0

この例では、 docker.io/library/ はレジストリー接頭部、 hello-world はそのレジストリー内の OCI イメージの ID、 sha256:53f1bbee2f52c39e41682ee1d388285290c5c8a76cc92b42687eecf38e0af3f0 はそのイメージのバージョンの固有 ID です。

このような場合、ワークロードプロバイダーロールがレジストリ(および関連するプル認証情報)を決定します。レジストリ参照とプル認証情報の両方が契約のワークロードセクションの一部であるためです。

動的レジストリー参照

特定のユースケースでは、ワークロードセクションが事前暗号化されている場合、レジストリは不明である。 たとえば、ワークロードプロバイダーがデプロイヤーにレジストリミラーやプライベートコンテナレジストリの使用を許可したい場合などです。

その場合、レジストリとプル認証情報を動的に上書きすることが可能です。 この取り組みは、ワークロード提供者とデプロイ担当者の間で調整されなければならない。

テンプレート方式は、 コンポーズ ベースのワークロードに対してのみ有効であり、ダイジェストを介して参照されるイメージに対してのみ有効です。 DCTベースのワークロードはサポートされていません。

ワークロード・プロバイダー

ワークロード・プロバイダーは、docker compose ファイルで置換変数を使用して、レジストリーを動的としてマークします。

services:
  helloworld:
    image: ${REGISTRY}/hpse-docker-hello-world-s390x@sha256:43c500c5f85fc450060b804851992314778e35cadff03cb63042f593687b7347

イメージのダイジェストはレジストリ間で同一であるため、ワークロードプロバイダーは使用するレジストリに関係なく、キーを設定することでイメージの特定バージョンをロックダウンできる。 Compose ファイルでのトークンの使用は、 Compose 仕様のネイティブ機能です。

これで、ワークロード・プロバイダーは、そのレジストリーのプル・シークレットを指定 せずに 、ワークロード・セクションを準備 (暗号化) できます。

デプロイヤー

デプロイ担当者は、レジストリおよび関連するプルシークレットに関する不足している情報を入力します。

レジストリーは環境変数として設定されます。 デプロイヤーとワークロードプロバイダーの両方が、環境全体に対して構成要素を提供でき、これらの構成要素はワークロードが優先される形で重ね合わされる。

プルクレデンシャルは、契約書の環境セクション( auth )を通して渡される。 環境変数と同様に、これらの auth セクションはワークロードセクションが優先される形で上書きされます。

---
  ---
  env:
    type: env
    auths:
      de.icr.io:
        username: xxx
        password: yyy
    env:
      REGISTRY: de.icr.io