Container Registry の情報確認と管理
    • PDF

    Container Registry の情報確認と管理

    • PDF

    Article Summary

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

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

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

    参考

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

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

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

    レジストリの削除

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

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

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

    イメージの削除

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

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

    イメージタグの削除

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

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

    古いタグの片付け

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

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

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

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

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

    この記事は役に立ちましたか?

    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.