チュートリアル: Azure Container Registry (ACR) をデプロイして使用する

Azure Container Registry (ACR) は、コンテナー イメージ用のプライベート レジストリです。 プライベート コンテナー レジストリを使用すると、アプリケーションとカスタム コードを安全にビルドおよびデプロイすることができます。 7 つのパートのうちの 2 番目のこのチュートリアルでは、ACR インスタンスをデプロイして、それにコンテナー イメージをプッシュします。 学習内容は次のとおりです。

  • ACR インスタンスを作成する
  • ACR のコンテナー イメージにタグを付ける
  • イメージを ACR にアップロードする
  • レジストリ内のイメージを表示する

後続のチュートリアルでは、ACR インスタンスを AKS の Kubernetes クラスターと統合し、イメージからアプリケーションをデプロイします。

始める前に

前のチュートリアルでは、単純な Azure Voting アプリケーション用のコンテナー イメージを作成しました。 Azure Voting アプリ イメージを作成していない場合は、「チュートリアル 1: AKS 用にアプリケーションを準備する」に戻ります。

このチュートリアルでは、Azure CLI バージョン 2.0.53 以降を実行している必要があります。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。

Azure Container Registry を作成する

ACR を作成する前に、リソース グループが必要です。 Azure リソース グループは、Azure リソースのデプロイと管理に使用する論理コンテナーです。

  1. az group create コマンドでリソース グループを作成します。
az group create --name myResourceGroup --location eastus
  1. az acr create コマンドを使用して ACR インスタンスを作成し、独自の一意のレジストリ名を指定します。 レジストリの名前は Azure 内で一意にする必要があります。また、5 ~ 50 文字の英数字を含める必要があります。 このチュートリアルの残りの部分では、コンテナー レジストリ名のプレースホルダーとして <acrName> を使用します。 Basic SKU は、ストレージとスループットのバランスが取れた、開発目的のコスト最適化されたエントリ ポイントです。
az acr create --resource-group myResourceGroup --name <acrName> --sku Basic

コンテナー レジストリにログインする

az acr login コマンドを使用して ACR にログインし、前の手順でコンテナー レジストリに設定した一意の名前を指定します。

az acr login --name <acrName>

このコマンドは、完了すると "Login Succeeded (ログインに成功しました)" というメッセージを返します。

コンテナー イメージにタグを付ける

現在のローカル イメージのリストを表示するには、docker images コマンドを使用します。

docker images

次の出力例は、現在のローカル Docker イメージのリストを示しています。

REPOSITORY                                     TAG                 IMAGE ID            CREATED             SIZE
mcr.microsoft.com/azuredocs/azure-vote-front   v1                  84b41c268ad9        7 minutes ago       944MB
mcr.microsoft.com/oss/bitnami/redis            6.0.8               3a54a920bb6c        2 days ago          103MB

ACR で azure-vote-front コンテナー イメージを使用するには、レジストリのログイン サーバー アドレスでイメージにタグを付ける必要があります。 そのタグは、イメージ レジストリにコンテナー イメージをプッシュするときに、ルーティングするために使用されます。

ログイン サーバー アドレスを取得するには、az acr list コマンドを使用し、loginServer に対してクエリを実行します。

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

その後、ローカルの azure-vote-front イメージに、コンテナー レジストリの acrLoginServer アドレスでタグを付けます。 イメージのバージョンを示すには、イメージ名の最後に :v1 を追加します。

docker tag mcr.microsoft.com/azuredocs/azure-vote-front:v1 <acrLoginServer>/azure-vote-front:v1

タグが適用されたことを確認するには、docker imagesを再実行します。

docker images

次の出力例は、ACR インスタンス アドレスとバージョン番号でタグ付けされたイメージを示しています。

REPOSITORY                                      TAG                 IMAGE ID            CREATED             SIZE
mcr.microsoft.com/azuredocs/azure-vote-front    v1                  84b41c268ad9        16 minutes ago      944MB
mycontainerregistry.azurecr.io/azure-vote-front v1                  84b41c268ad9        16 minutes ago      944MB
mcr.microsoft.com/oss/bitnami/redis             6.0.8               3a54a920bb6c        2 days ago          103MB

イメージをレジストリにプッシュ

docker push コマンドを使用して、、azure-vote-front イメージを ACR インスタンスにプッシュします。 イメージ名には、必ず独自の acrLoginServer アドレスを指定してください。

docker push <acrLoginServer>/azure-vote-front:v1

ACR へのイメージのプッシュが完了するまでに、数分かかることがあります。

レジストリ内のイメージの一覧表示

ご利用の ACR インスタンスにプッシュされたイメージのリストを返すには、az acr repository list コマンドを使用し、独自の <acrName> を指定します。

az acr repository list --name <acrName> --output table

次の出力例では、レジストリ内で利用可能なイメージとして azure-vote-front を示しています。

Result
----------------
azure-vote-front

特定のイメージのタグを表示するには、az acr repository show-tags コマンドを使用します。

az acr repository show-tags --name <acrName> --repository azure-vote-front --output table

次の出力例は、前の手順でタグを付けた v1 イメージを示しています。

Result
--------
v1

次のステップ

このチュートリアルでは、ACR を作成し、AKS クラスターで使用するためにイメージをプッシュしました。 以下の方法を学習しました。

  • ACR インスタンスを作成する
  • ACR のコンテナー イメージにタグを付ける
  • イメージを ACR にアップロードする
  • レジストリ内のイメージを表示する

次のチュートリアルでは、Azure に Kubernetes クラスターをデプロイする方法について学習します。