Container Registry の情報確認と管理

Prev Next

Classic/VPC環境で利用できます。

Container Registryに作成したレジストリとレジストリに登録(Push)したコンテナイメージを確認し、ローカルに保存した Dockerコンテナイメージを Container Registryのレジストリにアップロード(Push)したり、レジストリにある Dockerコンテナイメージをローカルにダウンロード(Pull)できます。また、運用中のレジストリや Dockerコンテナイメージをユーザー環境に合わせて設定・管理します。

Container Registry画面

Container Registryを利用するための基本的な説明は次の通りです。

containerregistry-screen_ko

領域 説明
① メニュー名 現在確認中のメニュー名とパス、運用中のレジストリ数
② 基本機能 レジストリの作成、Container Registry詳細情報の確認
③ 作成後の機能 運用中のレジストリの削除
④ Container Registryリスト 運用中のレジストリリストと情報を確認

レジストリリスト画面

作成して運用中のレジストリリストでレジストリ別の情報を確認します。確認する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Containers > Container Registry メニューを順にクリックします。
  2. 作成した Container Registryリストが表示されたらサマリー情報を確認するか、レジストリをクリックして詳細情報を確認します。
    • レジストリ名: Container Registry内に作成したレジストリ名
    • バケット名: Dockerコンテナイメージを保存する Object Storageのバケット名
    • 使用量: Dockerコンテナイメージを保存したバケットの使用量
    • ステータス: レジストリの現在のステータス
    • イメージリスト: 作成したレジストリに登録した Dockerコンテナイメージリスト画面に移動
    • アクセスコマンド: レジストリにログイン(Login)、Dockerコンテナイメージをアップロード(Push)/ダウンロード(Pull)するためのコマンドを確認
    • Configuration: パブリックエンドポイント(Public Endpoint)の使用アップロードした Dockerコンテナイメージのセキュリティ脆弱性スキャン(Scan on Push)の有無を設定
    • Public Endpoint: パブリックエンドポイント(Public Endpoint)の情報(<registry-name>.<region-code>.ncr.ntruss.com)
    • Private Endpoint: プライベートエンドポイント(Private Endpoint)の情報(<random-name>.<region-code>.private-ncr.ntruss.com)
    • 古いタグの片付け: Dockerコンテナイメージに適用されているタグ値を削除
    • 作成日時: レジストリを作成した日時

レジストリパブリックエンドポイントの有効化/無効化

パブリックエンドポイントは、外部ネットワーク(インターネット)を利用できる環境で NAVERクラウドプラットフォームの Container Registryを利用する際に使用するエンドポイントです。必要に応じてこの機能を無効にすると、コンテナレジストリを公開しないように設定できます。

参考

パブリックエンドポイントが無効化のステータスでも、プライベートレジストリは NAVERクラウドプラットフォームのネットワーク環境内で利用できます。

パブリックエンドポイント(Public Endpoint)を有効化または無効化する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Containers > Container Registry メニューを順にクリックします。
  2. リストで対象のレジストリ名をクリックします。
  3. 詳細情報領域で、Configurationにある i-containerregistry-detailsetをクリックします。
  4. Configuration設定のポップアップで、Public Endpoint項目の有効/無効のトグルボタンをクリックして使用するかどうかを設定した後、 [確認] ボタンをクリックします。

パブリックレジストリの有効化/無効化

パブリックレジストリは、権限がなくても誰もがそのレジストリからイメージをダウンロード(Pull)できるように設定する機能です。NAVERクラウドプラットフォームのコンテナレジストリは、基本的に権限のあるユーザーのみイメージのダウンロード(Pull)を行えます。必要な場合、パブリックレジストリを有効化して誰でもイメージをダウンロード(Pull)するように設定できます。

参考

パブリックレジストリが有効化のステータスでも、権限のないユーザーはイメージのアップロード(Push)を行えません。

パブリックレジストリ(Public Registry)を有効化または無効化する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Containers > Container Registry メニューを順にクリックします。
  2. リストで対象のレジストリ名をクリックします。
  3. 詳細情報領域で、Configurationにある i-containerregistry-detailsetをクリックします。
  4. Configuration設定のポップアップで、Public Registry項目の有効化/無効化のトグルボタンをクリックして使用有無を設定した後、 [確認] ボタンをクリックします。

レジストリの削除

作成して運用中のレジストリを削除します。

削除する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Containers > Container Registry メニューを順にクリックします。
  2. 削除するレジストリをクリックし、 [削除] ボタンをクリックします。
  3. レジストリ削除のポップアップで内容を確認した後、 [削除] ボタンをクリックします。
参考

レジストリを削除しても、Object Storageに保存した Dockerコンテナイメージは削除されません。事前にすべてのイメージを削除した後、レジストリを削除します。(推奨)

サブアカウントポリシーの管理

NAVERクラウドプラットフォームの Sub Accountサービスを利用すると、サブアカウントに Container Registry権限を割り当てられます。サブアカウントに割り当てられる Container Registryポリシーは、次の通りです。

  • Container Registry管理者(NCP_CONTAINER_REGISTRY_MANAGER): レジストリの作成/削除、Dockerコンテナイメージのアップロード(Push)/ダウンロード(Pull)/削除
  • Container Registryビューアー(NCP_CONTAINER_REGISTRY_VIEWER): レジストリの照会、Dockerコンテナイメージのダウンロード(Pull)

Docker CLI環境で、サブアカウントでレジストリにログインする場合の使用 IDは、サブアカウントの API認証キーです。サブアカウントのアクセスタイプ(Access Type)の API Gateway Accessが有効になっている場合、API認証キーは NAVERクラウドプラットフォームコンソールの i_menu > Services > Management & Governance > Sub Accountメニューで、そのサブアカウントを選択すると表示される詳細情報の [Access Key] タブで確認・管理できます。

レジストリログイン

Docker CLIでログイン

NAVERクラウドプラットフォームの Container Registryを利用するには、Docker Engine 1.10以降のバージョンが必要です。
そのバージョンがインストールされている場合、ターミナルで Docker CLIを利用してエンドポイントにログインできます。

Docker CLIを利用してエンドポイントにログインする方法は、次の通りです。

  1. レジストリにアクセスするためのエンドポイント、API認証キーの Access Key Id、Secret Key情報を確認します。

    • エンドポイント: レジストリの詳細情報画面で、Public Endpointまたは Private Endpointを確認
      • パブリックエンドポイント: <registry-name>.<region-code>.ncr.ntruss.com
      • プライベートエンドポイント: <random-id>.<region-code>.private-ncr.ntruss.com
    • アカウント ID: API認証キーの Access Key Idを確認
    • アカウントパスワード: API認証キーの Secret Keyを確認
  2. ターミナルで、アクセスコマンドを入力してレジストリにアクセスします。

    • 上記の1で確認した値を <access-key-id><registry-name><region-code><secret-key>に入力します。
    • レジストリの詳細情報画面のアクセスコマンド項目でもコマンドを確認できます。ご利用ガイドボタンをクリックすると、ログインの他にもアップロード(Push)、ダウンロード(Pull)コマンドも確認できます。
$ docker login -u <access-key-id> <registry-name>.<region-code>.ncr.ntruss.com
Password: <secret-key>
Login Succeeded

ログインに成功すると、上記の例のようにターミナル画面に「Login Succeeded」メッセージが表示されます。

Kubernetesでログイン

Kubernetesでエンドポイントにログインする方法は、次の通りです。

ここでは、kubectlコマンドを利用して regcredという名前の secretを作成する方法をユースケースにて説明します。

  1. レジストリにアクセスするためのエンドポイント、API認証キーの Access Key Id、Secret Key情報を確認します。

    • エンドポイント: レジストリの詳細情報画面で、Public Endpointまたは Private Endpointを確認
      • パブリックエンドポイント: <registry-name>.<region-code>.ncr.ntruss.com
      • プライベートエンドポイント: <random-id>.<region-code>.private-ncr.ntruss.com
    • アカウント ID: API認証キーの Access Key Idを確認
    • アカウントパスワード: API認証キーの Secret Keyを確認
    • ユーザーのメール: ユーザーアカウントのメールアドレス
  2. ターミナルで kubectlコマンドを利用して regcredという名前の secretを作成します。

    • 上記の1で確認した値を <registry-end-point><registry-end-point><secret-key><your-email>に入力します。
$ kubectl create secret docker-registry regcred --docker-server=<registry-end-point> --docker-username=<access-key-id> --docker-password=<secret-key> --docker-email=<your-email>
  1. NAVERクラウドプラットフォームに作成したレジストリのイメージをダウンロード(Pull)できるよう、以下の例のように templateの spec領域の imagePullSecretsに、事前に作成しておいた secretの名前を入力して保存します。

    • Example: MySQL YAML
     apiVersion: apps/v1
     kind: Deployment
     metadata:
       name: test-mysql
       labels:
         name: test-mysql
     spec:
       replicas: 1
       selector:
         matchLabels:
           name: test-mysql
       template:
         metadata:
           labels:
             name: test-mysql
         spec:
           imagePullSecrets:
           - name: regcred
           containers:
           - name: test-mysql
             image: <registry-name>.ncr.ntruss.com/mysql:5.7.21
             env:
             - name: MYSQL_ROOT_PASSWORD
               value: "1234"
    

Dockerコンテナイメージのアップロード(Push)

docker loginコマンドを利用して特定のレジストリのエンドポイントにログインした場合、そのレジストリに Dockerコンテナイメージをアップロード(Push)できます。

参考

Dockerコンテナイメージをレジストリにアップロード(Push)するには、先にそのコンテナの Dockerコンテナイメージを作成(docker commit)し、作成したイメージにタグ(docker tag)を適用しておく必要があります。詳細は、Dockerホームページのご利用ガイドと関連文書をご参照ください。

レジストリに Dockerコンテナイメージをアップロード(Push)する方法は、次の通りです。

ここでは、jenkins:latest Dockerコンテナイメージをレジストリにアップロード(Push)する方法をユースケースにて説明します。

  1. Docker CLI環境で、docker login コマンドを使用して対象のレジストリにログインします。
$ docker login -u <access-key-id> <registry-name>.<region-code>.ncr.ntruss.com
Password: <secret-key>
Login Succeeded
  1. 以下の例のように docker pushコマンドを使用して実行します。
    • レジストリの詳細情報画面のアクセスコマンド項目にあるご利用ガイドボタンをクリックすると、アップロード(Push)コマンドの例と説明を確認できます。
$ docker push <registry-name>.<region-code>.ncr.ntruss.com/jenkins
The push refers to repository [mybear.kr.beta-ncr.ntruss.com/jenkins]
0577e068c587: Layer already exists
b1891bf16fa7: Layer already exists
37c1d818eb0b: Layer already exists
d51e4482f53a: Layer already exists
ceed640cbb93: Layer already exists
9c2e8b91bfa8: Layer already exists
c477b6c8ca45: Layer already exists
fa0c3f992cbd: Layer already exists
ce6466f43b11: Layer already exists
719d45669b35: Layer already exists
3b10514a95be: Layer already exists
latest: digest: sha256:0de43cde2c4b864a8e4a84bbd9958e47c5d851319f118203303d040b0a74f159 size: 4501
参考

サブアカウントでログインした場合、そのサブアカウントの Sub Accountポリシーに管理者(マネージャ、Change(Full))権限がないと、この操作は行えません。

Dockerコンテナイメージのダウンロード(Pull)

docker loginコマンドを利用して特定のレジストリのエンドポイントにログインした場合、そのレジストリに保存した Dockerコンテナイメージをダウンロード(Pull)できます。

レジストリに Dockerコンテナイメージをダウンロード(Pull)する方法は、次の通りです。

ここでは、レジストリに保存した jenkins:latest Dockerコンテナイメージをダウンロード(Pull)する方法をユースケースにて説明します。

  1. Docker CLI環境で、docker login コマンドを使用して対象のレジストリにログインします。
$ docker login -u <access-key-id> <registry-name>.<region-code>.ncr.ntruss.com
Password: <secret-key>
Login Succeeded
  1. 以下の例のように docker pullコマンドを使用して実行します。
    • レジストリの詳細情報画面のアクセスコマンド項目にあるご利用ガイドボタンをクリックすると、ダウンロード(Pull)コマンドの例と説明を確認できます。
$ docker pull <registry-name>.<region-code>.ncr.ntruss.com/jenkins
Using default tag: latest
latest: Pulling from jenkins
55cbf04beb70: Pull complete
c58988e753d7: Pull complete
70fcfa476f73: Pull complete
0539c80a02be: Downloading [===============>                                   ]  40.52MB/133.9MB
54fefc6dcf80: Download complete
911bc90e47a8: Download complete
38430d93efed: Download complete
c0cbcb5ac747: Download complete
35ade7a86a8e: Download complete
aa433a6a56b1: Downloading [===================>                               ]  27.91MB/70.41MB
841c1dd38d62: Download complete
12b47c68955c: Download complete
1322ea3e7bfd: Download complete
参考

サブアカウントでログインした場合、そのサブアカウントの Sub Accountポリシーにビューアー(View(Full))以上の権限がないと、この操作は行えません。

Dockerコンテナイメージの管理

Container Registryのレジストリに登録した Dockerコンテナイメージを確認したり、イメージにメモを入力したり、古いタグを片づけます。また、Dockerコンテナイメージを削除するなどの管理を行います。

アップロードイメージの確認

特定のレジストリにアップロードした Dockerコンテナイメージを確認・管理します。

レジストリにアップロードした Dockerコンテナイメージリストに移動する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Containers > Container Registry メニューを順にクリックします。

  2. レジストリリストで、対象のレジストリにあるイメージリストの [移動] ボタンをクリックします。

  3. レジストリの Dockerコンテナイメージリストが表示されたらサマリー情報を確認するか、Dockerコンテナイメージをクリックして詳細情報を確認します。

    • [削除] : レジストリにアップロードしたイメージを削除
    • リストと [Details] タブ
      • イメージ名: Dockerコンテナイメージの名前
      • 直近の変更日: Dockerコンテナイメージを変更した直近の日時
      • Pulls: Dockerコンテナイメージをダウンロードした回数
      • Pullコマンド: Docker CLI環境などで Dockerコンテナイメージをダウンロード(Pull)するためのコマンドを確認。ご利用ガイドボタンをクリックすると、ダウンロード(Pull)の他にもログイン(Login)、アップロード(Push)コマンドも確認可能
      • Configuration: タグ変更可能有無を設定
      • Short Description: 100文字以内の説明を入力
      • Full Description: マークダウン(Markdown)形式をサポートし、より豊富な説明を作成可能
    • [Tags] タブ
      • Tag削除: Dockerコンテナイメージに適用されているタグ(Tag)を削除
      • タグ名: Dockerコンテナイメージに適用されているタグ(Tag)の名前
      • 圧縮サイズ: タグが適用されている Dockerコンテナイメージのサイズ
      • 直近の変更日: Dockerコンテナイメージを変更した直近の日時
      • Digest: Dockerコンテナイメージの固有の識別 ID
      • セキュリティ脆弱性: Dockerコンテナイメージのセキュリティ脆弱性スキャン

イメージ Descriptionの作成

Dockerコンテナイメージについての説明を Short Descriptionと Full Descriptionで作成します。

  • Short Description: 100文字以内の説明を入力
  • Full Description: マークダウン(Markdown)形式をサポートし、より豊富な説明を作成可能

Dockerコンテナイメージについての説明(Description)を作成する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Containers > Container Registry メニューを順にクリックします。
  2. レジストリリストで、対象のレジストリにあるイメージリストの [移動] ボタンをクリックします。
  3. Dockerコンテナイメージリストの Detailタブで、Short Descriptionまたは Full Description[変更] ボタンをクリックします。
  4. 入力フィールドに説明を入力した後、 [提出] ボタンをクリックします。
    • Full Descriptionは、マークダウン形式で説明を入力する [Code] タブと、作成した説明をプレビューする [Preview] タブに区分されます。
    • Short Descriptionで作成した説明は、リストの Short Description列に表示されます。

イメージの削除

レジストリにアップロードした Dockerコンテナイメージを削除する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Containers > Container Registry メニューを順にクリックします。
  2. レジストリリストで、対象のレジストリにあるイメージリストの [移動] ボタンをクリックします。
  3. Dockerコンテナイメージリストで削除対象の Dockerコンテナイメージにチェックを入れて選択した後、 [削除] ボタンをクリックします。
  4. イメージ削除のポップアップで内容を確認した後、 [削除] ボタンをクリックします。
    • イメージを削除すると、そのイメージのすべてのタグ(tag)も自動で削除されます。
注意

イメージまたはイメージタグの削除時に Garbage Collectionを行います。Garbage Collectionの実行中にデータ保護のため、イメージ Pushを制限します。

イメージタグの削除

Dockerコンテナイメージに適用したタグ(tag)を削除する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Containers > Container Registry メニューを順にクリックします。
  2. レジストリリストで、対象のレジストリにあるイメージリストの [移動] ボタンをクリックします。
  3. Dockerコンテナイメージリストで対象の Dockerコンテナイメージをクリックします。
  4. 詳細情報画面で [Tags] タブをクリックします。
  5. タグリストで削除対象のタグにチェックを入れて選択した後、 [Tag削除] ボタンをクリックします。
  6. Tag削除のポップアップで内容を確認した後、 [削除] ボタンをクリックします。

古いタグの片付け

Dockerコンテナイメージに適用したタグを削除する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Containers > Container Registry メニューを順にクリックします。
  2. レジストリリストで対象のレジストリをクリックします。
  3. レジストリの詳細情報画面で古いタグの片付け項目の [移動] ボタンをクリックします。
  4. 必要に応じて、Filter機能を利用して照会条件に合った Dockerコンテナイメージのみ表示できます。基準日と最後のタグを除外するかどうかを選択した後、 [適用] ボタンをクリックします。
  5. イメージリストで、タグを削除するイメージにチェックを入れて選択した後、 [削除] ボタンをクリックします。
  6. 削除のポップアップで内容を確認し、 [削除] ボタンをクリックします。

タグ変更可能の有効化/無効化

同じタグ名を持つイメージの Push/Overwriteを防止する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールで、 i_menu > Services > Containers > Container Registry メニューを順にクリックします。
  2. レジストリリストで、対象のレジストリにあるイメージリストの [移動] ボタンをクリックします。
  3. Dockerコンテナイメージリストの Detailsタブで、Configurationにあるi-containerregistry-detailsetをクリックします。
  4. Configuration設定のポップアップで、Tag Mutability項目の有効化/無効化のトグルボタンをクリックして使用するかどうかを設定した後、 [確認] ボタンをクリックします。