クイック スタート:Azure portal を使用して Azure コンテナー レジストリを作成する

Azure Container Registry は、コンテナー イメージおよび関連アーティクルのビルド、保管、管理をするための、プライベート レジストリ サービスです。 このクイックスタートでは、Azure portal を使用して Azure コンテナー レジストリ インスタンスを作成します。 次に、Docker コマンドを使用してコンテナー イメージをレジストリにプッシュし、最後にレジストリからイメージをプルして実行します。

レジストリにログインし、コンテナー イメージを操作するために、このクイック スタートでは、Azure CLI を実行している必要があります (バージョン 2.0.55 以降を推奨)。 バージョンを確認するには、az --version を実行します。 インストールまたはアップグレードする必要がある場合は、Azure CLI のインストールに関するページを参照してください。

また、デーモンを実行してローカルに Docker をインストールする必要があります。 Docker では、MacWindows、または Linux システムで Docker を簡単に構成できるパッケージが提供されています。

Azure へのサインイン

Azure portal にサインインします。

コンテナー レジストリの作成

[リソースの作成]>[コンテナー]>[コンテナー レジストリ] の順に選択します。

ポータルでコンテナー レジストリに移動する

[基本] タブで [リソース グループ][レジストリ名] の値を入力します。 レジストリの名前は Azure 内で一意にする必要があります。また、5 ~ 50 文字の英数字を含める必要があります。 このクイック スタートでは、myResourceGroup という名前の新しいリソース グループを West US に作成し、 [SKU] には [Basic] を選択します。

ポータルでコンテナー レジストリを作成する

残りの設定は既定値のままにします。 次に、 [Review + create](確認と作成) を選択します。 設定を確認したら [作成] を選択します。

ヒント

このクイック スタートでは、Basic レジストリを作成します。これは、Azure Container Registry について学習している開発者にとって、コストが最適なオプションです。 ストレージとイメージのスループットを向上させる他のレベルと、プライベート エンドポイント を使用した接続などの機能を選択します。 利用可能なサービス レベル (SKU) の詳細については、コンテナー レジストリのサービス レベルに関するページを参照してください。

"デプロイメントに成功しました" というメッセージが表示されたら、ポータルでコンテナー レジストリを選択します。

ポータルでのコンテナー レジストリの概要

レジストリ名とログイン サーバーの値をメモします。これは、Azure クラウドの azurecr.io で終わる完全修飾名です。 後続の手順で Docker でイメージをプッシュし、プルするとき、これらの値を使用します。

レジストリへのログイン

コンテナー イメージをプッシュしたりプルしたりするには、あらかじめレジストリ インスタンスにログインしておく必要があります。 ローカル コンピューターで Azure CLI にサインインし、az acr login コマンドを実行します。 Azure CLI でログインする際は、レジストリ リソース名のみを指定します。 完全修飾ログイン サーバー名は使用しません。

az acr login --name <registry-name>

例:

az acr login --name mycontainerregistry

このコマンドは、完了すると Login Succeeded を返します。

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

Azure Container Registry にイメージをプッシュするには、まずイメージを用意する必要があります。 ローカル コンテナー イメージがまだない場合は、次の docker pull コマンドを実行して、既存のパブリック イメージをプルします。 この例では、Microsoft Container Registry から hello-world イメージをプルします。

docker pull mcr.microsoft.com/hello-world

イメージをレジストリにプッシュするには、レジストリのログイン サーバーの完全修飾名を使用して、そのイメージにタグを付けておく必要があります。 ログイン サーバー名は、<registry-name>.azurecr.io (すべて小文字にする必要があります) という形式です (mycontainerregistry.azurecr.io など)。

docker tag コマンドを使用してイメージにタグ付けします。 <login-server> を ACR インスタンスのログイン サーバー名で置き換えます。

docker tag mcr.microsoft.com/hello-world <login-server>/hello-world:v1

例:

docker tag mcr.microsoft.com/hello-world mycontainerregistry.azurecr.io/hello-world:v1

最後に、docker push を使用して、レジストリ インスタンスにイメージをプッシュします。 <login-server> をレジストリ インスタンスのログイン サーバー名で置き換えます。 この例では、hello-world レポジトリを作成します。これには、hello-world:v1 イメージが含まれています。

docker push <login-server>/hello-world:v1

コンテナー レジストリにイメージをプッシュした後は、ローカルの Docker 環境から hello-world:v1 イメージを削除します (この docker rmi コマンドは、Azure コンテナー リポジトリ内の hello-world リポジトリからイメージを削除しないことに注意してください)。

docker rmi <login-server>/hello-world:v1

コンテナー イメージの一覧表示

レジストリ内のイメージを一覧表示するには、ポータルでレジストリに移動し、[リポジトリ] を選択してから、docker push で作成した hello-world リポジトリを選択します。

ポータルでコンテナー イメージを一覧表示する

hello-world リポジトリを選択することによって、 [タグ]v1 タグが付いたイメージが表示されます。

レジストリからイメージを実行する

ここで、docker run を使用して、コンテナー レジストリから hello-world:v1 コンテナー イメージをプルして実行できます。

docker run <login-server>/hello-world:v1  

出力例:

Unable to find image 'mycontainerregistry.azurecr.io/hello-world:v1' locally
v1: Pulling from hello-world
Digest: sha256:662dd8e65ef7ccf13f417962c2f77567d3b132f12c95909de6c85ac3c326a345
Status: Downloaded newer image for mycontainerregistry.azurecr.io/hello-world:v1

Hello from Docker!
This message shows that your installation appears to be working correctly.

[...]

リソースをクリーンアップする

リソースをクリーンアップするには、ポータルで myResourceGroup リソース グループに移動します。 リソース グループが読み込まれたら、 [リソース グループの削除] をクリックして、リソース グループ、コンテナー レジストリ、およびそこに格納されているコンテナー イメージを削除します。

ポータルでリソース グループを削除する

次のステップ

このクイック スタートでは、Azure portal を使って Azure Container Registry を作成し、コンテナー イメージをプッシュしてから、レジストリからイメージをプルして実行しました。 Azure Container Registry のチュートリアルに進んで、ACR についての理解を深めましょう。