コンテナーレジストリの使用
コンテナーレジストリは、さまざまなタグ付きバージョンで利用可能な名前付きコンテナーイメージを保持するストレージおよびコンテンツ配信システムです。
ユーザーは以下のソースからコンテナーレジストリに接続できます
- 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 はそのイメージをどのレジストリに関連付けるか尋ねます。-
以前にビルドしたイメージは、コンテナーエクスプローラーのイメージビューの下に表示されます。右クリックしてタグ...を選択します。
-
新しい名前
<あなたのレジストリ名またはユーザー名>/<イメージ名>:<タグ>
を指定し、タグ付けアクションを完了します。たとえば、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 Resources 拡張機能が必要です。認証されると、Azure ノードにサブスクリプションと、それぞれのレジストリが表示されます。
各レジストリについて、ユーザーはコンテキストメニューを使用して実行できるさまざまなアクションがあります。
- レジストリを削除: レジストリを完全に削除します
- ポータルで開く: ブラウザを開き、Azure Portalでレジストリに移動します
- プロパティを表示: レジストリのプロパティを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 にデプロイのページを参照してください。