多くのシナリオでは、プライベートイメージリポジトリ内のイメージを使用してアプリケーションをデプロイします。 このトピックでは、Container Registryコンソールでプライベートイメージリポジトリを作成し、このリポジトリでイメージを使用してアプリケーションを作成する方法について説明します。
手順 1:プライベートイメージリポジトリの作成
Container Registryコンソールを初めて使用する場合は、ヒントメッセージが表示され、コンソールにログインするためのパスワードを設定するように求められます。 [今すぐ有効化] をクリックし、パスワードを設定します。
Container Registryコンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
[インスタンス] ページで、管理するPersonal Editionインスタンスをクリックします。
Container Registry Personal Editionインスタンスの管理ページの左側のナビゲーションウィンドウで、 を選択します。
[リポジトリ] ページの左上隅にある [リポジトリの作成] をクリックします。
[リポジトリ情報] ステップで、[名前空間] 、[リポジトリ名] 、[概要] 、および [リポジトリタイプ] を設定します。 この例では、プライベートタイプが選択されています。 [次へ] をクリックします。
[コードソース] ステップで、コードソースの [ローカルリポジトリ] を選択し、[リポジトリの作成] をクリックします。
説明リポジトリリストで、作成したリポジトリの名前をクリックします。 [詳細] ページの [ガイド] タブで、プライベートイメージリポジトリの使用方法に関する情報を表示できます。
次のコマンドを実行して、イメージリポジトリにログインします。
説明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
出力で、パスワードを入力します。
ログインが成功
と表示された場合、ログインは成功です。次のコマンドを実行して、リポジトリ内のイメージのIDを照会します。
docker images
次のコマンドを実行して、画像にタグを追加します。
sudo docker tag <Image ID> registry.cn-hangzhou.aliyuncs.com/<Namespace>/<Repository name>:[Image version]
次のコマンドを実行して、イメージをリポジトリにプッシュします。
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
リポジトリの詳細ページに移動します。 左側のナビゲーションウィンドウで、[タグ] をクリックします。 画像がリポジトリにアップロードされていることを確認します。 画像のバージョンを表示することもできます。
プライベートリポジトリのログインシークレットの作成
プライベートイメージをプルするには、プライベートリポジトリのログインシークレットを使用する必要があります。
ACKコンソールにログインします。
ACKコンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。 クラスターの詳細ページが表示されます。
詳細ページの左側のナビゲーションウィンドウで、 を選択します。
Secretsページの右上隅にある [作成] をクリックします。
[作成] パネルでパラメーターを設定し、[OK] をクリックします。
パラメーター
説明
名前
秘密の名前。The name of the Secret.
タイプ
次のタイプのシークレットがサポートされています。
不透明: 通常の秘密。 キーと値を入力します。 値はBase64でエンコードする必要があります。
Private Repository Logon Secret: このタイプのシークレットは、プライベートイメージリポジトリからイメージをプルするために必要な資格情報を格納します。 イメージリポジトリのアドレス、ユーザー名、およびパスワードを入力します。
説明ユーザー名は、Alibaba Cloudアカウントのフルネームです。 パスワードは、Container Registryを有効にしたときに指定されます。 [アクセス資格情報] ページに移動して、パスワードを変更できます。
TLS証明書: トランスポート層セキュリティ (TLS) 証明書を使用して、ユーザーIDを検証します。
証明書: TLS証明書の内容を入力します。
キー: TLS証明書のプライベートキーを入力します。
シークレットが作成されると、[シークレット] ページにリダイレクトされます。 新しく作成されたシークレットはリストにあります。
CLIを使用して、プライベートリポジトリのログインシークレットを作成することもできます。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
プライベートイメージリポジトリを使用したアプリケーションの作成
ACKコンソールにログインします。
ACKコンソールの左側のナビゲーションウィンドウで、[クラスター] をクリックします。
[クラスター] ページで、管理するクラスターを見つけ、クラスターの名前をクリックするか、[操作] 列の [詳細] をクリックします。 クラスターの詳細ページが表示されます。
詳細ページの左側のナビゲーションウィンドウで、 を選択します。
[デプロイメント] ページで、右上隅の [YAMLから作成] をクリックします。
説明[イメージから作成] クリックしてアプリケーションを作成することもできます。 詳細については、「イメージを利用したデプロイアプリケーションの作成」をご参照ください。
[サンプルテンプレート] を [カスタム] に設定し、次の内容を [テンプレート] セクションにコピーします。
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
[作成] をクリックします。
[デプロイメント] ページに移動します。 新しく作成したアプリケーションを表示できます。
詳細については、「プライベートイメージリポジトリの使用」をご参照ください。