Azure コンテナー レジストリは、 Docker Hub がパブリック Docker コンテナー イメージを格納する方法と同様に、プライベート コンテナー イメージとその他の成果物を格納および管理します。 コンテナー レジストリでのログイン、プッシュ、プル、およびその他のコンテナー イメージ操作には、Docker コマンド ライン インターフェイス (Docker CLI) を使用できます。
次の手順では、パブリック Nginx イメージをダウンロードし、プライベート Azure コンテナー レジストリにタグを付けて、レジストリにプッシュしてから、レジストリからプルします。
Prerequisites
- Azure のサブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
- Azure サブスクリプション内の Azure コンテナー レジストリ。 Azure portal、AzureCLI、または Azure PowerShell を使用して作成できます。
- Docker もローカルにインストールする必要があります。 Docker では、macOS、Windows、または Linux システムで Docker を簡単に構成できるパッケージが提供されています。
コンテナー レジストリにサインインする
コンテナー レジストリ に対して認証を行うには、いくつかの方法があります 。
コマンド ラインで作業する場合に推奨される方法は、Azure CLI コマンド az acr login を使用することです。
myregistryという名前のレジストリにアクセスするには、Azure CLI にサインインし、レジストリに対して認証します。
az login
az acr login --name myregistry
docker loginを使用してサインインすることもできます。 認証資格情報を管理するためのベスト プラクティスについては、 docker login コマンド リファレンスを参照してください。
たとえば、自動化シナリオ用 にサービス プリンシパルをレジストリに割り当てた とします。 次のコマンドを実行するときに、メッセージが表示されたら、サービス プリンシパルの appID (ユーザー名) とパスワードを対話形式で指定します。
docker login myregistry.azurecr.io
ヒント
docker loginを使用するとき、およびレジストリにプッシュするためにイメージにタグを付ける場合は、必ず完全修飾レジストリ名 (すべて小文字) を指定します。 この記事の例では、完全修飾名は myregistry.azurecr.io。
パブリック Nginx イメージをプルする
まず、ローカル コンピューターにパブリック Nginx イメージをプルします。 この例では、 公式の Nginx イメージをプルします。
docker pull nginx
コンテナーをローカルで実行する
docker run コマンドを使用して、ポート 8080 で Nginx コンテナーのローカル インスタンスを対話形式で (-it) 起動します。
--rm引数は、コンテナーを停止するときに削除することを指定します。
docker run -it --rm -p 8080:80 nginx
http://localhost:8080を参照して、実行中のコンテナーで Nginx によって提供される既定の Web ページを表示します。 次のようなページが表示されます。
-itを使用してコンテナーを対話形式で開始したため、ブラウザーに移動した後、コマンド ラインで Nginx サーバーの出力を確認できます。
コンテナーを停止して削除するには、 Ctrl+Cを押します。
イメージのエイリアスを作成する
docker タグを使用して、レジストリへの完全修飾パスを持つイメージのエイリアスを作成します。 この例では、レジストリのルートが乱雑にならないように、 samples 名前空間を指定します。
docker tag nginx myregistry.azurecr.io/samples/nginx
名前空間を使用したタグ付けの詳細については、リポジトリ名前空間のベスト プラクティス(container-registry-best-practices.md#repository-namespaces) を参照してください。
イメージをレジストリにプッシュする
プライベート レジストリへの完全修飾パスを使用してイメージにタグを付けたので、 docker push を使用してレジストリにプッシュできます。
docker push myregistry.azurecr.io/samples/nginx
レジストリからイメージをプルする
docker pull コマンドを使用して、レジストリからイメージをプルします。
docker pull myregistry.azurecr.io/samples/nginx
Nginx コンテナーを起動する
docker run コマンドを使用して、レジストリからプルしたイメージを実行します。
docker run -it --rm -p 8080:80 myregistry.azurecr.io/samples/nginx
http://localhost:8080を参照して、実行中のコンテナーを表示します。
コンテナーを停止して削除するには、 Ctrl+Cを押します。
イメージを削除する (省略可能)
Nginx イメージが不要になった場合は、 docker rmi コマンドを使用してローカルで削除できます。
docker rmi myregistry.azurecr.io/samples/nginx
Azure コンテナー レジストリからイメージを削除するには、 az acr repository deleteを使用します。 たとえば、次のコマンドは、 samples/nginx:latest タグによって参照されるマニフェスト、一意のレイヤー データ、およびマニフェストを参照する他のすべてのタグを削除します。
az acr repository delete --name myregistry --image samples/nginx:latest
次のステップ
基本を理解したら、レジストリの使用を開始する準備ができました。 たとえば、レジストリから次の目的でコンテナー イメージをデプロイします。