11.5. コンテナーレジストリーの使用
Podman と Docker を使用して、コンテナーレジストリーからコンテンツを取得し、そのコンテンツを Satellite コンテナーレジストリーにプッシュできます。Satellite レジストリーは Open Containers Initiative (OCI) 仕様に準拠しているため、他のレジストリーに適用されるのと同じ方法を使用してコンテンツを Satellite にプッシュできます。OCI の詳細は、Open Container Initiative Distribution Specification を参照してください。
前提条件
-
コンテンツを Satellite にプッシュするために Satellite アカウントに
edit_products
権限があることを確認する。 - リポジトリーにプッシュする前に、製品が存在することを確認します。詳細は、「カスタム製品の作成」 を参照してください。
-
ライフサイクル環境で認証されていないプルが許可されていない場合は、Satellite からコンテンツをプルするために、Satellite アカウントに
view_lifecycle_environments
、view_products
、およびview_content_views
権限があることを確認する。
Capsule のコンテナーレジストリー
コンテンツを含む Capsule では、Container Gateway Capsule プラグインはコンテナーレジストリーとして機能します。Katello から認証情報をキャッシュし、受信した要求を Pulp にプロキシーします。Container Gateway は、コンテンツを含む Capsules でデフォルトで利用できます。
Satellite コンテナーレジストリーにコンテンツをプッシュする際の考慮事項
- コンテンツをプッシュできるのは、Satellite Server 自体のみです。Capsule Server にもコンテンツをプッシュする必要がある場合は、Capsule 同期を使用します。
- プッシュされたコンテナーレジストリー名には小文字のみを含める必要があります。
- プッシュされたリポジトリーがコンテンツビューバージョンで公開されない限り、レジストリー名のパターンには従いません。詳細は、「コンテナー名のパターンの管理」 を参照してください。これは、ユーザーが同じパスからプッシュおよびプルできるようにするためです。
- ユーザーは同じパスからプッシュおよびプルする必要があります。ラベルベースのスキーマを使用する場合は、ラベルを使用してプルします。ID ベースのスキーマを使用する場合は、ID を使用してプルします。
手順
コンテナーレジストリーにログインします。
podman login satellite.example.com
# podman login satellite.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーイメージをリスト表示します。
podman search satellite.example.com/
# podman search satellite.example.com/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーイメージをプルします。
podman pull satellite.example.com/my-image:<optional_tag>
# podman pull satellite.example.com/my-image:<optional_tag>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow コンテナーイメージを Satellite コンテナーレジストリーにプッシュします。
- コンテナーイメージがどの組織、製品、リポジトリーに属しているかを示すには、コンテナーレジストリー名に組織と製品を含めます。
次のいずれかのスキーマを使用して、コンテナーの宛先のアドレスを指定できます。
podman push My_Container_Image_Hash satellite.example.com/My_Organization_Label/My_Product_Label/My_Repository_Name[:_My_Tag_] podman push My_Container_Image_Hash satellite.example.com/id/My_Organization_ID/My_Product_ID/My_Repository_Name[:_My_Tag_]
$ podman push My_Container_Image_Hash satellite.example.com/My_Organization_Label/My_Product_Label/My_Repository_Name[:_My_Tag_] $ podman push My_Container_Image_Hash satellite.example.com/id/My_Organization_ID/My_Product_ID/My_Repository_Name[:_My_Tag_]
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - コンテンツのプッシュが完了すると、Satellite にリポジトリーが作成されます。