Image RegistryサービスはオープンソースプロジェクトであるHarborを利用してサービスされます。 Docker Image管理用のストレージ機能とユーザー認証機能を提供します。
複数のユーザー宛てにサービスを提供するために、Public/Private プロジェクトを作成してイメージを管理できます。詳細については、以下のガイドまたはオープンソースプロジェクトサイトのユーザーガイドを参照してください。
サービスを使用するには、ZCP Consoleサイドメニューの[Image Registry]をクリックします。
アカウントを作成する
クラスター管理者は任意のユーザーを直接登録できます。管理者としてログインした後、以下に示すように、「管理 > ユーザー > 新規ユーザー」ボタンをクリックします。
以下のようにユーザー情報を入力し、「OK」ボタンをクリックしてユーザーを作成します。
パブリックドメイン
イメージストアをプロジェクトごとに分離して使用できます。プロジェクトタイプをPublicとPrivateに設定できます。次の違いがあります。
ユーザーの区別 | 特権 | Public | Private |
---|---|---|---|
匿名ユーザー | Pull (Read) | O | X |
Push (Write) | X | X | |
ログインユーザー | Pull (Read) | O | X |
Push (Write) | X | X |
Projectsメニューを選択し、NEW PROJECTボタンをクリックします。
「Project Name」と入力して「Public」のメニューをチェックし、「OK」ボタンをクリックします。
Access levelのPublicをチェックすると、誰でもそのプロジェクトを見ることができます。ただし、イメージをプッシュするにはプロジェクトメンバーである必要があります。
Access level の Public を check しないと Private で作成され、プロジェクトメンバーでなければそのプロジェクトを表示できません。
Project が作成された様子です。
Project名をクリックして右側のPUSH IMAGEメニューをクリックすると、このプロジェクトにImageを上げるdocker commandを確認できます。
プロジェクトにImage Push
Docker Clientで...
Image Registryにログイン
パブリックプロジェクトにImageをプッシュするか、プライベートプロジェクトにImage PullまたはPushするには、Image Registryにログインする必要があります。
ログインは、次のコマンドを実行するとすぐにログインします。ログインするには、プロジェクトメンバーとして登録されている必要があります。
$ docker login [IMAGE_REGISTRY_URL] Username: # Image Registry 사용자 계정 Password: # Image Registry 사용자 비밀번호
Image Push する
Docker コマンドを使って Push する方法は、既存の Image Push する方法と同じです。プッシュする前にdocker loginを実行する必要があります。
# 이미지 Tag를 생성합니다. $ docker tag SOURCE_IMAGE[:TAG] [IMAGE_REGISTRY_URL]/[프로젝트명]/IMAGE[:TAG] # 이미지를 Push 합니다. $ docker push [IMAGE REGISTRY URL]/[프로젝트명]/IMAGE[:TAG]
Image Pull する
Dockerコマンドを使用してプルする方法は、アクセス可能なImageを入力するだけです。
$ docker pull [IMAGE_REGISTRY_URL]/[프로젝트명]/IMAGE[:TAG]
Kubernetes Podから...
ImagePullSecretの作成と登録
Kubernetes PodでPrivate Image Registryを使用する場合は、Docker loginなどの認証処理を行う必要があります。これにはImagePullSecretを使用します。
名前空間に生成された Secret を以下のコマンドで確認します。
$ kubectl get secret --namespace my-namespace NAME TYPE DATA AGE my-docker-secret kubernetes.io/dockerconfigjson 1 1d my-tls-secret kubernetes.io/tls 2 1d
ポッドを作成するために、以下のようにimagePullSecretsにシークレット名を追加すると、ポッドの作成時にそのイメージを使用できます。
apiVersion: v1 kind: Pod metadata: name: private-reg spec: containers: - name: private-reg-container image: [IMAGE_REGISTRY_URL]/[프로젝트명]/IMAGE[:TAG] imagePullSecrets: - name: my-docker-secret
プロジェクトメンバーの管理
プロジェクトを照会したり画像をプッシュしたりするには、プロジェクトメンバーとして登録する必要があります。
画面のようにプロジェクトに入り、Members タブをクリックして NEW MEMBER ボタンを押すと、Member を追加できます。
次のように、新しいメンバーIDと役割を入力できます。
各役割で実行できるものは次のとおりです。
役割 | 実行権限 |
---|---|
Project Admin | プロジェクトが作成されると、コンストラクタに権限が付与されます。 プロジェクトの読み取り/書き込み権限があります。 プロジェクトメンバーの追加削除権限があります。 |
Developer | プロジェクトの読み取り/書き込み権限があります。 |
Guest | プロジェクトの読み取り権限があります。 |
オンライン相談
問い合わせ