コンテナレジストリの使用
コンテナレジストリは、名前付きコンテナイメージを異なるタグ付きバージョンで保持するストレージおよびコンテンツ配信システムです。
ユーザーは、以下のソースからコンテナレジストリに接続できます。
- Azure Container Registry
- Docker Hub
- GitHub コンテナレジストリ
- Docker V2 API をサポートするあらゆる汎用プライベートレジストリ
イメージをコンテナレジストリにプッシュする
コンテナイメージをデプロイする前に、そのイメージをコンテナレジストリにアップロードする必要があります。イメージは、Docker Hub、Azure Container Registry (ACR)、または別のレジストリにアップロードできます。Docker Hub、Azure Container Registries、またはその他のレジストリのいずれにプッシュする場合でも、同じ手順でイメージをプッシュできます。Azure Container Registry をまだお持ちでない場合は、プッシュ ステップで作成できます。
-
コンテナエクスプローラーを開き、レジストリビューの下にあるレジストリに接続...アイコンを選択し、プロンプトに従います。プロバイダー (例: Azure または Docker Hub) を選択し、レジストリに接続するための資格情報を入力します。プロンプトが表示された場合は、Azure Resources 拡張機能をインストールします。

-
これで、レジストリがレジストリの下に表示されます。

-
必要に応じて、イメージにタグを付けます。イメージをレジストリにアップロードするには、
docker pushが正しいレジストリにアップロードするように、イメージにレジストリ名でタグを付ける必要があります。プッシュしようとしたときにイメージにタグが付けられていない場合、VS Code はイメージに関連付けたいレジストリを尋ねます。-
以前にビルドしたイメージは、コンテナエクスプローラーのイメージビューに表示されます。右クリックしてタグ...を選択します。

-
新しい名前
<your registry or username>/<image name>:<tag>を指定し、タグ付けアクションを完了します。たとえば、ACR の新しいイメージ名はmainacr.azurecr.io/webapp6:latest、Docker Hub の場合はmyusername/webapp6:latestになります。
-
-
イメージは、イメージタグが指すレジストリの下のイメージビューのコンテナエクスプローラーに表示されます。このイメージを選択し、プッシュを選択します。イメージがまだタグ付けされていない場合、プッシュするレジストリを選択するか、新しいレジストリを作成するよう求められ、選択に基づいてイメージがタグ付けされます。

-
プッシュコマンドが完了したら、イメージがプッシュされたレジストリノードを更新すると、アップロードされたイメージが表示されます。

Docker Hub
これはDocker Hubに接続し、指定されたアカウントのすべてのリポジトリとイメージを一覧表示します。このオプションを選択すると、Docker Hubの資格情報を入力する必要があります。

Docker Hubレジストリ内の各リポジトリで実行できるアクションは次のとおりです。
- リポジトリをプル:指定されたリポジトリ内のすべてのイメージをローカルにコピーします
- ブラウザで開く:ブラウザを開き、Docker Hub上の指定されたリポジトリに移動します
- 更新:変更を反映するためにリポジトリを更新します
リポジトリ内のタグ付けされた各イメージで実行できるアクションは次のとおりです。
- イメージをプル:イメージの最新バージョンをローカルにコピーします
- 完全なタグをコピー:完全なタグをクリップボードにコピーします
- イメージをAzure App Serviceにデプロイ:イメージをAzure App Serviceにデプロイします。イメージをAzureにデプロイページを参照してください
- イメージをAzure Container Appsにデプロイ:イメージをAzure Container Appsにデプロイします。イメージをAzureにデプロイページを参照してください
- ブラウザで開く:ブラウザを開き、Docker Hub上の指定されたイメージに移動します
Azure Container Registry
このオプションには、Azure アカウントに接続し、異なるすべてのサブスクリプションとレジストリを表示するために、Azure リソース拡張機能が必要です。認証されると、Azure ノードには、各レジストリとサブスクリプションが表示されます。

各レジストリについて、ユーザーはコンテキストメニューを使用して実行できるさまざまなアクションがあります。

- レジストリを削除:レジストリを完全に削除します。
- ポータルで開く:ブラウザを開き、Azure ポータルでレジストリに移動します。
- プロパティを表示:レジストリのプロパティを JSON 形式で開きます。
- 更新:変更を反映するためにレジストリを更新します。
特定のレジストリ内の各リポジトリで実行できるアクションは次のとおりです。

- リポジトリをプル:指定されたリポジトリ内のすべてのイメージをローカルにコピーします。
- リポジトリを削除:リポジトリを完全に削除します。
- 更新:変更を反映するためにリポジトリを更新します
リポジトリ内のタグ付けされた各イメージで実行できるアクションは次のとおりです。

- イメージをプル:イメージの最新バージョンをローカルにコピーします。
- 完全なタグをコピー:完全なタグをクリップボードにコピーします
- イメージダイジェストをコピー:Dockerが使用するSHA256ハッシュ識別子であるイメージダイジェストをクリップボードにコピーします。イメージダイジェストの詳細については、Docker Docsを参照してください。
- イメージマニフェストを検査:イメージのレジストリマニフェストを検査します。これは、ローカルにプルされたイメージを検査するのとは異なります。
- イメージをAzure App Serviceにデプロイ:イメージをAzure App Serviceにデプロイします。イメージをAzureにデプロイページを参照してください
- イメージをAzure Container Appsにデプロイ:イメージをAzure Container Appsにデプロイします。イメージをAzureにデプロイページを参照してください
- イメージのタグを解除:イメージのタグを解除します。
- イメージを削除:イメージを完全に削除します。
GitHub
これは、GitHub アカウントのコンテナレジストリに接続します。このオプションを選択すると、GitHub アカウントの資格情報を入力するように求められます。

GitHub レジストリ内の各リポジトリで実行できるアクションは次のとおりです。
- リポジトリをプル:指定されたリポジトリ内のすべてのイメージをローカルにコピーします。
- 更新:変更を反映するためにリポジトリを更新します
リポジトリ内のタグ付けされた各イメージで実行できるアクションは次のとおりです。
- イメージをプル:イメージの最新バージョンをローカルにコピーします。
- 完全なタグをコピー:完全なタグをクリップボードにコピーします
- イメージダイジェストをコピー:Dockerが使用するSHA256ハッシュ識別子であるイメージダイジェストをクリップボードにコピーします。イメージダイジェストの詳細については、Docker Docsを参照してください。
- イメージマニフェストを検査:イメージのレジストリマニフェストを検査します。これは、ローカルにプルされたイメージを検査するのとは異なります。
- イメージをAzure App Serviceにデプロイ:イメージをAzure App Serviceにデプロイします。イメージをAzureにデプロイページを参照してください
- イメージをAzure Container Appsにデプロイ:イメージをAzure Container Appsにデプロイします。イメージをAzureにデプロイページを参照してください