すべてのプロダクト
Search
ドキュメントセンター

:プライベートイメージリポジトリを使用したアプリケーションの作成

最終更新日:Oct 30, 2024

多くのシナリオでは、プライベートイメージリポジトリ内のイメージを使用してアプリケーションをデプロイします。 このトピックでは、Container Registryコンソールでプライベートイメージリポジトリを作成し、このリポジトリでイメージを使用してアプリケーションを作成する方法について説明します。

手順 1:プライベートイメージリポジトリの作成

Container Registryコンソールを初めて使用する場合は、ヒントメッセージが表示され、コンソールにログインするためのパスワードを設定するように求められます。 [今すぐ有効化] をクリックし、パスワードを設定します。

  1. Container Registryコンソールにログインします。

  2. 上部のナビゲーションバーで、リージョンを選択します。

  3. [インスタンス] ページで、管理するPersonal Editionインスタンスをクリックします。

  4. Container Registry Personal Editionインスタンスの管理ページの左側のナビゲーションウィンドウで、[リポジトリ] > [リポジトリ] を選択します。

  5. [リポジトリ] ページの左上隅にある [リポジトリの作成] をクリックします。

  6. [リポジトリ情報] ステップで、[名前空間][リポジトリ名][概要] 、および [リポジトリタイプ] を設定します。 この例では、プライベートタイプが選択されています。 [次へ] をクリックします。

  7. [コードソース] ステップで、コードソースの [ローカルリポジトリ] を選択し、[リポジトリの作成] をクリックします。

    説明

    リポジトリリストで、作成したリポジトリの名前をクリックします。 [詳細] ページの [ガイド] タブで、プライベートイメージリポジトリの使用方法に関する情報を表示できます。

  8. 次のコマンドを実行して、イメージリポジトリにログインします。

    説明
    • Alibaba Cloudアカウントを使用している場合、Alibaba Cloudアカウントの名前はリポジトリにログオンするためのユーザー名です。

    • Resource Access Management (RAM) ユーザーを使用する場合は、前の文字列を使用します。onaliyun.comは、リポジトリにログオンするためのユーザー名です。 たとえば、RAMユーザーの名前が123@1880770869021234.onaliyun.comの場合、リポジトリにログオンするためのユーザー名は123 @ 1880770869021234です。

    sudo docker login --username=<Repository username> registry.cn-<The region where the instance of Container Registry Personal Edition is deployed>.aliyuncs.com

    出力で、パスワードを入力します。 ログインが成功と表示された場合、ログインは成功です。

  9. 次のコマンドを実行して、リポジトリ内のイメージのIDを照会します。

    docker images     
  10. 次のコマンドを実行して、画像にタグを追加します。

    sudo docker tag <Image ID> registry.cn-hangzhou.aliyuncs.com/<Namespace>/<Repository name>:[Image version]
  11. 次のコマンドを実行して、イメージをリポジトリにプッシュします。

    sudo docker push registry.cn-hangzhou.aliyuncs.com/<Namespace>/<Repository name>:[Image version]

    期待される出力:

    The push refers to a repository [registry.cn-hangzhou.aliyuncs.com/XXX/tomcat-private]
    9072c7b03a1b: Pushed
    f9701cf47c58: Pushed
    365c8156ff79: Pushed
    2de08d97c2ed: Pushed
    6b09c39b2b33: Pushed
    4172ffa172a6: Pushed
    1dccf0da88f3: Pushed
    d2070b14033b: Pushed
    63dcf81c7ca7: Pushed
    ce6466f43b11: Pushed
    719d45669b35: Pushed
    3b10514a95be: Pushed
    V1: digest: sha256:cded14cf64697961078aedfdf870e704a52270188c8194b6f70c778a8289**** size: 2836

    リポジトリの詳細ページに移動します。 左側のナビゲーションウィンドウで、[タグ] をクリックします。 画像がリポジトリにアップロードされていることを確認します。 画像のバージョンを表示することもできます。

プライベートリポジトリのログインシークレットの作成

プライベートイメージをプルするには、プライベートリポジトリのログインシークレットを使用する必要があります。

  1. ACKコンソールにログインします。

  2. ACKコンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  3. [クラスター] ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。 クラスターの詳細ページが表示されます。

  4. 詳細ページの左側のナビゲーションウィンドウで、[設定] > [秘密] を選択します。

  5. Secretsページの右上隅にある [作成] をクリックします。

  6. [作成] パネルでパラメーターを設定し、[OK] をクリックします。

    パラメーター

    説明

    名前

    秘密の名前。The name of the Secret.

    タイプ

    次のタイプのシークレットがサポートされています。

    • 不透明: 通常の秘密。 キーと値を入力します。 値はBase64でエンコードする必要があります。

    • Private Repository Logon Secret: このタイプのシークレットは、プライベートイメージリポジトリからイメージをプルするために必要な資格情報を格納します。 イメージリポジトリのアドレス、ユーザー名、およびパスワードを入力します。

      説明

      ユーザー名は、Alibaba Cloudアカウントのフルネームです。 パスワードは、Container Registryを有効にしたときに指定されます。 [アクセス資格情報] ページに移動して、パスワードを変更できます。

    • TLS証明書: トランスポート層セキュリティ (TLS) 証明書を使用して、ユーザーIDを検証します。

      • 証明書: TLS証明書の内容を入力します。

      • キー: TLS証明書のプライベートキーを入力します。

    シークレットが作成されると、[シークレット] ページにリダイレクトされます。 新しく作成されたシークレットはリストにあります。

説明

CLIを使用して、プライベートリポジトリのログインシークレットを作成することもできます。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。

プライベートイメージリポジトリを使用したアプリケーションの作成

  1. ACKコンソールにログインします。

  2. ACKコンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  3. [クラスター] ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。 クラスターの詳細ページが表示されます。

  4. 詳細ページの左側のナビゲーションウィンドウで、[ワークロード] > [デプロイ] を選択します。

  5. [デプロイメント] ページで、右上隅の [YAMLから作成] をクリックします。

    説明

    [イメージから作成] クリックしてアプリケーションを作成することもできます。 詳細については、「イメージを利用したデプロイアプリケーションの作成」をご参照ください。

  6. [サンプルテンプレート][カスタム] に設定し、次の内容を [テンプレート] セクションにコピーします。

    apiVersion: apps/v1 
    kind: Deployment 
    metadata: 
      name: private-image
      nameSpace: default  
      labels:  
        app: private-image  
    spec:   
      replicas: 1
      selector:
        matchLabels:
          app: private-image
      template:
        metadata:
          labels:
            app: private-image
        spec:
          containers:
          - name: private-image
            image: registry.cn-hangzhou.aliyuncs.com/The name of the namespace/tomcat-private:latest
            ports:
            - containerPort: 8080
          imagePullSecrets:
          - name: regsecret
  7. [作成] をクリックします。

    [デプロイメント] ページに移動します。 新しく作成したアプリケーションを表示できます。

詳細については、「プライベートイメージリポジトリの使用」をご参照ください。