コンテナ レジストリの使用
コンテナ レジストリは、名前付きコンテナ イメージを、さまざまなタグ付きバージョンで保持するストレージおよびコンテンツ配信システムです。
ユーザーは以下のソースからコンテナ レジストリに接続できます。
- 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 ドキュメントを参照してください。
- イメージマニフェストを検査: イメージのレジストリマニフェストを検査します。これは、イメージをローカルにプルしたときに検査するのとは異なります。
- Azure App Service にイメージをデプロイ: イメージを Azure App Service にデプロイします。詳細については、「イメージを Azure にデプロイ」ページを参照してください。
- Azure Container Apps にイメージをデプロイ: イメージを Azure Container Apps にデプロイします。詳細については、「イメージを Azure にデプロイ」ページを参照してください。
- イメージのタグを解除: イメージのタグを解除します。
- イメージを削除: イメージを完全に削除します。
GitHub
これは、GitHub アカウントのコンテナ レジストリに接続します。このオプションを選択すると、GitHub アカウントの資格情報を入力するように求められます。
GitHub レジストリ内の各リポジトリに対して実行できるアクションは次のとおりです。
- リポジトリをプル: 特定のリポジトリ内のすべてのイメージをローカルにコピーします。
- 更新: 変更を反映するためにリポジトリを更新します。
リポジトリ内のタグ付きイメージごとに、実行できるアクションは次のとおりです。
- イメージをプル: イメージの最新バージョンをローカルにコピーします。
- フルタグをコピー: フルタグをクリップボードにコピーします。
- イメージダイジェストをコピー: イメージダイジェスト (Docker が使用する SHA256 ハッシュ識別子) をクリップボードにコピーします。イメージダイジェストの詳細については、Docker ドキュメントを参照してください。
- イメージマニフェストを検査: イメージのレジストリマニフェストを検査します。これは、イメージをローカルにプルしたときに検査するのとは異なります。
- Azure App Service にイメージをデプロイ: イメージを Azure App Service にデプロイします。詳細については、「イメージを Azure にデプロイ」ページを参照してください。
- Azure Container Apps にイメージをデプロイ: イメージを Azure Container Apps にデプロイします。詳細については、「イメージを Azure にデプロイ」ページを参照してください。