チュートリアル: Arc で有効になっている AKS のAzure Container Registryを作成する
適用対象: AKS on Azure Stack HCI 22H2、AKS on Windows Server
Azure Container Registryは、コンテナー イメージのプライベート レジストリです。 プライベート コンテナー レジストリを使用すると、アプリケーションとカスタム コードを安全にビルドおよびデプロイすることができます。
このチュートリアルでは、7 つのパート 2 で、Azure Container Registry インスタンスをデプロイし、AKS で使用するためにコンテナー イメージをプッシュします。 学習内容は次のとおりです。
- Azure Container Registry インスタンスの作成
- Azure Container Registryのコンテナー イメージにタグを付ける
- イメージを Azure Container Registry にアップロードする
- レジストリ内のイメージを表示する
以降のチュートリアルでは、このAzure Container Registry インスタンスが Kubernetes クラスターと統合され、アプリケーションがイメージからデプロイされます。
開始する前に
前のチュートリアルでは、単純な Azure Voting アプリケーションのコンテナー イメージを作成する方法について説明しました。 Azure Voting アプリのイメージを作成していない場合、チュートリアル 1 - コンテナー イメージの作成に関するページに戻ってください。
このチュートリアルでは、Azure CLI バージョン 2.0.53 以降を実行している必要があります。 バージョンを確認するには、az --version
を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。
Azure Container Registry を作成する
Azure Container Registry インスタンスを作成するには、まずリソース グループが必要です。 Azure リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。
az group create コマンドを使用して、リソース グループを作成します。 次の例では、myResourceGroup という名前のリソース グループが eastus リージョンに作成されます。
az group create --name myResourceGroup --location eastus
az acr create コマンドを使用して Azure Container Registry インスタンスを作成し、独自のレジストリ名を指定します。 レジストリの名前は Azure 内で一意にする必要があります。また、5 ~ 50 文字の英数字を含める必要があります。 このチュートリアルの残りの部分では、コンテナー レジストリ名のプレースホルダーとして <acrName>
を使用します。 独自の一意のレジストリ名を指定します。
Basic SKU は、ストレージとスループットのバランスが取れた、開発目的のコスト最適化されたエントリ ポイントです。
az acr create --resource-group myResourceGroup --name <acrName> --sku Basic
コンテナー レジストリにログインする
ACR インスタンスを使用するには、まずログインする必要があります。 az acr login コマンドを使用し、前の手順でコンテナー レジストリに指定した一意の名前を指定します。
az acr login --name <acrName>
このコマンドは、完了すると ログインに成功した というメッセージを返します。
コンテナー イメージにタグを付ける
現在のローカル イメージの一覧を表示するには、docker images コマンドを使用します。
docker images
このコマンドの出力には、現在のローカル イメージの一覧が表示されます。
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
tiangolo/uwsgi-nginx-flask python3.6 a16ce562e863 6 weeks ago 944MB
Azure Container Registryで 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 イメージ をもう一度実行します。
docker images
イメージには、Azure Container Registry インスタンス アドレスとバージョン番号がタグ付けされています。
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
tiangolo/uwsgi-nginx-flask python3.6 a16ce562e863 6 weeks ago 944MB
イメージをレジストリにプッシュ
イメージをビルドしてタグ付けしたら、azure-vote-front イメージを Azure Container Registry インスタンスにプッシュします。
docker push を使用し、次のようにイメージ名に独自acrLoginServer
のアドレスを指定します。
docker push <acrLoginServer>/azure-vote-front:v1
Azure Container Registryへのイメージ プッシュが完了するまでに数分かかる場合があります。
レジストリ内のイメージの一覧表示
Azure Container Registry インスタンスにプッシュされたイメージの一覧を返すには、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
これで、プライベートの Azure Container Registry インスタンスに格納されているコンテナー イメージができました。 このイメージは、次のチュートリアルでAzure Container Registryから Kubernetes クラスターにデプロイされます。
次の手順
このチュートリアルでは、Azure Container Registryを作成し、Kubernetes クラスターで使用するイメージをプッシュしました。 以下の方法について学習しました。
- Azure Container Registry (ACR) インスタンスを作成する
- ACR のコンテナー イメージにタグを付ける
- イメージを ACR にアップロードする
- レジストリ内のイメージを表示する
Azure に Kubernetes クラスターをデプロイする方法については、次のチュートリアルに進んでください。