12.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権限があることを確認する。 -
Satellite アカウントに、認証用のアクセストークンを生成するための
create_personal_access_tokens権限を付与するロールがある。このトークンは、podman loginを実行するときに自動的に生成されます。
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.comCopy 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 にリポジトリーが作成されます。