次の方法で共有


Docker CLI を使用して Azure コンテナー レジストリに最初のイメージをプッシュする

Azure コンテナー レジストリは、 Docker Hub がパブリック Docker コンテナー イメージを格納する方法と同様に、プライベート コンテナー イメージとその他の成果物を格納および管理します。 コンテナー レジストリでのログインプッシュプル、およびその他のコンテナー イメージ操作には、Docker コマンド ライン インターフェイス (Docker CLI) を使用できます。

次の手順では、パブリック Nginx イメージをダウンロードし、プライベート Azure コンテナー レジストリにタグを付けて、レジストリにプッシュしてから、レジストリからプルします。

Prerequisites

  • Azure のサブスクリプション。 Azure サブスクリプションをお持ちでない場合は、開始する前に 無料アカウント を作成してください。
  • Azure サブスクリプション内の Azure コンテナー レジストリ。 Azure portal、AzureCLI、または Azure PowerShell を使用して作成できます。
  • Docker もローカルにインストールする必要があります。 Docker では、macOSWindows、または 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 ページを表示します。 次のようなページが表示されます。

ローカル コンピューター上の Nginx

-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

次のステップ

基本を理解したら、レジストリの使用を開始する準備ができました。 たとえば、レジストリから次の目的でコンテナー イメージをデプロイします。