コンテナーレジストリの使用
コンテナーレジストリは、名前付きの Docker イメージを保持し、さまざまなタグ付きバージョンで利用できるストレージおよびコンテンツ配信システムです。
ユーザーは、次のソースから Docker レジストリに接続できます。
- Azure Container Registry
- Docker Hub
- GitHub コンテナーレジストリ
- Docker V2 API をサポートする任意の汎用プライベートレジストリ
コンテナーレジストリにイメージをプッシュする
Docker イメージをデプロイする前に、イメージをコンテナーレジストリにアップロードする必要があります。イメージは、Docker Hub、Azure Container Registry (ACR)、または別のレジストリにアップロードできます。Docker Hub、Azure Container Registries、またはその他のレジストリにプッシュする場合でも、同じ手順に従ってイメージをプッシュできます。Azure Container Registry をまだお持ちでない場合は、[プッシュ] ステップで作成できます。
-
Docker エクスプローラーを開き、[レジストリ] グループの下にある [レジストリの接続...] アイコンを選択し、プロンプトに従います。プロバイダー (たとえば、Azure または Docker Hub) を選択し、レジストリに接続するための資格情報を提供します。プロンプトが表示された場合は、Azure Resources 拡張機能をインストールします。
-
これで、レジストリが [レジストリ] の下に表示されます。
-
オプションで、イメージにタグを付けます。イメージをレジストリにアップロードするには、docker push が正しいレジストリにアップロードするように、イメージにレジストリ名をタグ付けする必要があります。イメージをプッシュしようとしたときにタグが付けられていない場合、VS Code はイメージに関連付けるレジストリを尋ねます。
-
以前にビルドしたイメージは、Docker エクスプローラーの [イメージ] タブに表示されます。右クリックして [タグ...] を選択します。
-
新しい名前
<レジストリまたはユーザー名>/<イメージ名>:<タグ>
を指定し、タグアクションを完了します。たとえば、ACR の新しいイメージ名はmainacr.azurecr.io/webapp6:latest
、Docker Hub の場合はmyusername/webapp6:latest
になります。
-
-
イメージタグが指すレジストリの下の [イメージ] タブの Docker エクスプローラーにイメージが表示されます。このイメージを選択して [プッシュ] を選択します。イメージにまだタグが付けられていない場合は、プッシュ先のレジストリを選択するか、新しいレジストリを作成するように求められ、選択に基づいてイメージにタグが付けられます。
-
プッシュコマンドが完了したら、イメージがプッシュされたレジストリノードを更新すると、アップロードされたイメージが表示されます。
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 アカウントの Docker レジストリに接続します。このオプションを選択すると、GitHub アカウントの資格情報を入力するように求められます。
GitHub レジストリ内の各リポジトリに対して、実行できるアクションは次のとおりです。
- リポジトリのプル: 指定されたリポジトリ内のすべてのイメージをローカルにコピーします。
- 更新: リポジトリを更新して変更を反映します。
リポジトリ内のタグ付きイメージごとに、実行できるアクションは次のとおりです。
- イメージのプル: イメージの最新バージョンをローカルにコピーします。
- フルタグのコピー: フルタグをクリップボードにコピーします。
- イメージダイジェストのコピー: Docker が使用する SHA256 ハッシュ識別子であるイメージダイジェストをクリップボードにコピーします。イメージダイジェストの詳細については、Docker ドキュメントを参照してください。
- イメージマニフェストの検査: イメージのレジストリマニフェストを検査します。これは、イメージをローカルにプルしたときにイメージを検査するのと同じではありません。
- Azure App Service へのイメージのデプロイ: イメージを Azure App Service にデプロイします。「Azure へのイメージのデプロイ」ページを参照してください。
- Azure Container Apps へのイメージのデプロイ: イメージを Azure Container Apps にデプロイします。「Azure へのイメージのデプロイ」ページを参照してください。