この記事は、3 部構成のチュートリアルのパート 2 です。 チュートリアルのパート 1 では、Node.js Web アプリケーション用の Docker コンテナー イメージを作成しました。 このチュートリアルでは、イメージを Azure Container Registry にプッシュします。 コンテナー イメージを作成する必要がある場合は、 チュートリアル 1 – コンテナー イメージの作成に戻ります。
Azure Container Registry は、Azure のプライベート Docker レジストリです。 このチュートリアル、シリーズの第2部では、次の操作を行います。
- Azure CLI を使用して Azure Container Registry インスタンスを作成する
- Azure コンテナー レジストリのコンテナー イメージにタグを付けます
- レジストリにイメージをアップロードする
次の記事では、シリーズの最後の記事で、プライベート レジストリから Azure Container Instances にコンテナーをデプロイします。
開始する前に
このチュートリアルを完了するには、次の要件を満たす必要があります。
Azure CLI: ローカル コンピューターに Azure CLI バージョン 2.0.29 以降がインストールされている必要があります。 バージョンを見つけるには、 az --versionを実行します。 インストールまたはアップグレードする必要がある場合は、「 Azure CLI のインストール」を参照してください。
Docker: このチュートリアルでは、コンテナー、コンテナー イメージ、基本的な docker コマンドなどの Docker の主要な概念を基本的に理解していることを前提としています。 Docker やコンテナーの基礎に関する入門情報については、「Docker overview」(Docker の概要) を参照してください。
Docker: このチュートリアルを完了するには、Docker がローカルにインストールされている必要があります。 Docker には、macOS、Windows、Linux 上で Docker 環境の構成を行うパッケージが用意されています。
Important
Azure Cloud Shell には Docker デーモンが含まれていないため、このチュートリアルを完了するには、ローカル コンピューターに Azure CLI と Docker エンジンの両方をインストールする必要があります。 このチュートリアルでは、Azure Cloud Shell を使用できません。
Azure コンテナー レジストリを作成する
コンテナー レジストリを作成する前に、デプロイ先の リソース グループ が必要です。 リソース グループは、すべての Azure リソースがデプロイおよび管理される論理コレクションです。
az group create コマンドを使用して、リソース グループを作成します。 次の例では、 myResourceGroup という名前のリソース グループが eastus リージョンに作成されます。
az group create --name myResourceGroup --location eastus
リソース グループを作成したら、 az acr create コマンドを使用して Azure コンテナー レジストリを作成します。 コンテナー レジストリ名は Azure 内で一意である必要があり、5 ~ 50 文字の英数字が含まれている必要があります。
<acrName>をレジストリの一意の名前に置き換えます。
az acr create --resource-group myResourceGroup --name <acrName> --sku Basic
mycontainerregistry082 という名前の新しい Azure コンテナー レジストリの部分的な出力を次に示します。
{
"creationDate": "2020-07-16T21:54:47.297875+00:00",
"id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
"location": "eastus",
"loginServer": "mycontainerregistry082.azurecr.io",
"name": "mycontainerregistry082",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sku": {
"name": "Basic",
"tier": "Basic"
},
"status": null,
"storageAccount": null,
"tags": {},
"type": "Microsoft.ContainerRegistry/registries"
}
チュートリアルの残りの部分では、この手順で選択したコンテナー レジストリ名のプレースホルダーとして <acrName> を参照します。
コンテナー レジストリにサインインする
イメージをプッシュする前に、Azure Container Registry インスタンスにサインインする必要があります。 az acr login コマンドを使用して、操作を完了します。 コンテナー レジストリの作成時に選択した一意の名前を指定する必要があります。
az acr login --name <acrName>
例えば次が挙げられます。
az acr login --name mycontainerregistry082
このコマンドは、完了すると Login Succeeded を返します。
Login Succeeded
コンテナー イメージにタグを付けます
Azure Container Registry などのプライベート レジストリにコンテナー イメージをプッシュするには、まずレジストリのログイン サーバーの完全な名前でイメージにタグを付ける必要があります。
まず、Azure コンテナー レジストリの完全なログイン サーバー名を取得します。 次の az acr show コマンドを実行し、 <acrName> を作成したレジストリの名前に置き換えます。
az acr show --name <acrName> --query loginServer --output table
たとえば、レジストリの名前が mycontainerregistry082 の場合:
az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io
次に、 docker images コマンドを使用してローカル イメージの一覧を表示します。
docker images
コンピューター上にある他のイメージと共に、前のチュートリアルでビルドした aci-tutorial-app イメージが表示されます。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 minutes ago 68.1 MB
aci-tutorial-app イメージにコンテナー レジストリのログイン サーバーにタグを付けます。 また、イメージ名の末尾に :v1 タグを追加して、イメージのバージョン番号を示します。
<acrLoginServer>を、前に実行した az acr show コマンドの結果に置き換えます。
docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1
docker imagesをもう一度実行して、タグ付け操作を確認します。
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 minutes ago 68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app v1 5c745774dfa9 7 minutes ago 68.1 MB
Azure Container Registry へのイメージのプッシュ
プライベート レジストリの完全なログイン サーバー名で aci-tutorial-app イメージにタグを付けたので、 docker push コマンドを使用してイメージをレジストリにプッシュできます。
<acrLoginServer>は、前の手順で取得した完全なログイン サーバー名に置き換えます。
docker push <acrLoginServer>/aci-tutorial-app:v1
push操作は、インターネット接続に応じて数秒から数分かかります。出力は次の例のようになります。
docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576
Azure Container Registry でイメージを一覧表示する
プッシュしたイメージが実際に Azure コンテナー レジストリにあることを確認するには、 az acr repository list コマンドを使用してレジストリ内のイメージを一覧表示します。
<acrName>をコンテナー レジストリの名前に置き換えます。
az acr repository list --name <acrName> --output table
例えば次が挙げられます。
az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app
特定のイメージの タグ を表示するには、 az acr repository show-tags コマンドを使用します。
az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table
次の例のような出力が表示されます。
--------
v1
次のステップ
このチュートリアルでは、Azure Container Instances で使用する Azure コンテナー レジストリを準備し、コンテナー イメージをレジストリにプッシュしました。 次の手順を完了しました。
- Azure CLI を使用して Azure Container Registry インスタンスを作成しました
- Azure Container Registry のコンテナー イメージにタグ付けされました
- Azure Container Registry にイメージをアップロードしました
次のチュートリアルに進み、Azure Container Instances を使用してコンテナーを Azure にデプロイする方法を学習します。