Docker CLI を使用してプライベート Docker コンテナー レジストリに最初のイメージをプッシュするPush your first image to a private Docker container registry using the Docker CLI

Docker Hub で公開 Docker イメージを格納するように、Azure コンテナー レジストリではプライベート Docker コンテナー イメージを格納および管理します。An Azure container registry stores and manages private Docker container images, similar to the way Docker Hub stores public Docker images. コンテナー レジストリに対するログインプッシュプルなどの操作には、Docker コマンド ライン インターフェイス (Docker CLI) を使用できます。You can use the Docker command-line interface (Docker CLI) for login, push, pull, and other operations on your container registry.

以下の手順では、公式の Nginx イメージを公開 Docker Hub レジストリからダウンロードし、プライベート Azure コンテナー レジストリにタグ付けしてレジストリにプッシュした後、レジストリからもう一度プルします。In the following steps, you download an official Nginx image from the public Docker Hub registry, tag it for your private Azure container registry, push it to your registry, and then pull it from the registry.

前提条件Prerequisites

  • Azure コンテナー レジストリ - コンテナー レジストリは、Azure サブスクリプションに作成します。Azure container registry - Create a container registry in your Azure subscription. たとえば、Azure Portal または Azure CLI 2.0 を使用します。For example, use the Azure portal or the Azure CLI 2.0.
  • Docker CLI - ローカル コンピューターを Docker ホストとして設定し、Docker CLI コマンドにアクセスするには、Docker をインストールします。Docker CLI - To set up your local computer as a Docker host and access the Docker CLI commands, install Docker.

レジストリへのログインLog in to a registry

プライベート コンテナー レジストリで認証するさまざまな方法があります。There are several ways to authenticate to your private container registry. コマンド ラインで作業するときに推奨される方法は、Azure CLI コマンドの az acr loginを使用することです。The recommended method when working in a command line is with the Azure CLI command az acr login. たとえば、myregistry という名前のレジストリにログインするには、次のように入力します。For example, to log in to a registry named myregistry:

az acr login --name myregistry

docker login でログインすることもできます。You can also log in with docker login. 次の例では、Azure Active Directory サービス プリンシパルの ID とパスワードを渡します。The following example passes the ID and password of an Azure Active Directory service principal. たとえば、オートメーション シナリオで、レジストリにサービス プリンシパルを割り当てることができます。For example, you might have assigned a service principal to your registry for an automation scenario.

docker login myregistry.azurecr.io -u xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx -p myPassword

どちらのコマンドも、完了すると Login Succeeded が返されます。Both commands return Login Succeeded once completed. docker login を使用した場合は、--password-stdin パラメーターの使用を推奨するセキュリティ警告が表示されることもあります。If you use docker login, you might also see a security warning recommending the use of the --password-stdin parameter. このパラメーターの使用について、ここでは説明していませんが、このベスト プラクティスに従うことをお勧めします。While its use is outside the scope of this article, we recommend following this best practice. 詳細については、docker login コマンドのリファレンスを参照してください。For more information, see the docker login command reference.

ヒント

docker login を使用する場合とレジストリにプッシュするために画像にタグ付けする場合は、常にレジストリの完全修飾名 (すべて小文字) を指定してください。Always specify the fully qualified registry name (all lowercase) when you use docker login and when you tag images for pushing to your registry. この記事の例では、完全修飾名は myregistry.azurecr.io です。In the examples in this article, the fully qualified name is myregistry.azurecr.io.

公式の Nginx イメージをプルするPull the official Nginx image

まず、公開 Nginx イメージをローカル コンピューターにプルします。First, pull the public Nginx image to your local computer.

docker pull nginx

コンテナーをローカルで実行するRun the container locally

次の docker run コマンドを実行して、Nginx コンテナーのローカル インスタンスを 対話形式でポート 8080 で起動します (-it)。Execute following docker run command to start a local instance of the Nginx container interactively (-it) on port 8080. --rm 引数は、コンテナーが停止されたときに、それを削除するように指定します。The --rm argument specifies that the container should be removed when you stop it.

docker run -it --rm -p 8080:80 nginx

http://localhost:8080 に移動して、実行中のコンテナーの Nginx によって提供される既定の Web ページを表示します。Browse to http://localhost:8080 to view the default web page served by Nginx in the running container. 次のようなページが表示されます。You should see a page similar to the following:

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

-it を指定して対話形式でコンテナーを開始したため、ブラウザーでそれに移動すると、コマンド ラインに Nginx サーバーの出力が表示されます。Because you started the container interactively with -it, you can see the Nginx server's output on the command line after navigating to it in your browser.

コンテナーを停止して削除するには、Control+C を押します。To stop and remove the container, press Control+C.

イメージのエイリアスを作成するCreate an alias of the image

docker tag でレジストリへの完全修飾パスを使用して、イメージのエイリアスを作成します。Use docker tag to create an alias of the image with the fully qualified path to your registry. この例では、レジストリのルートが煩雑にならないように、samples 名前空間を指定しています。This example specifies the samples namespace to avoid clutter in the root of the registry.

docker tag nginx myregistry.azurecr.io/samples/nginx

名前空間を持つタグ付けの詳細については、「Azure Container Registry のベスト プラクティス」の「リポジトリの名前空間」セクションを参照してください。For more information about tagging with namespaces, see the Repository namespaces section of Best practices for Azure Container Registry.

イメージをレジストリにプッシュするPush the image to your registry

これで、完全修飾パスを使用してイメージにプライベート レジストリへのタグが付けられたので、docker push を使用してレジストリにプッシュできます。Now that you've tagged the image with the fully qualified path to your private registry, you can push it to the registry with docker push:

docker push myregistry.azurecr.io/samples/nginx

レジストリからイメージをプルするPull the image from your registry

レジストリからイメージをプルするには、docker pull コマンドを使用します。Use the docker pull command to pull the image from your registry:

docker pull myregistry.azurecr.io/samples/nginx

Nginx コンテナーを起動するStart the Nginx container

レジストリからプルしたイメージを実行するには、docker run コマンドを使用します。Use the docker run command to run the image you've pulled from your registry:

docker run -it --rm -p 8080:80 myregistry.azurecr.io/samples/nginx

ブラウザーで http://localhost:8080 に移動して、実行中のコンテナーを表示します。Browse to http://localhost:8080 to view the running container.

コンテナーを停止して削除するには、Control+C を押します。To stop and remove the container, press Control+C.

イメージを削除する (任意指定)Remove the image (optional)

Nginx イメージが不要になった場合は、docker rmi コマンドを使用して、ローカルに削除できます。If you no longer need the Nginx image, you can delete it locally with the docker rmi command.

docker rmi myregistry.azurecr.io/samples/nginx

Azure コンテナー レジストリからイメージを削除するには、Azure CLI コマンド az acr repository delete を使用できます。To remove images from your Azure container registry, you can use the Azure CLI command az acr repository delete. たとえば、次のコマンドは、タグ、タグによって参照されるマニフェスト、関連付けられているレイヤー データ、およびマニフェストを参照するその他すべてのタグを削除します。For example, the following command deletes the manifest referenced by a tag, any associated layer data, and all other tags referencing the manifest.

az acr repository delete --name myregistry --repository samples/nginx --tag latest --manifest

次のステップNext steps

基本を理解したので、レジストリの使用を開始する準備ができました。Now that you know the basics, you're ready to start using your registry! たとえば、コンテナー イメージをレジストリから Azure Container Service (AKS) クラスターに展開できます。For example, deploy container images from your registry to an Azure Container Service (AKS) cluster.