クイック スタート:Azure PowerShell を使用してプライベート コンテナー レジストリを作成するQuickstart: Create a private container registry using Azure PowerShell

Azure Container Registry は、Docker コンテナー イメージのビルド、保管、サポートをするための、管理されたプライベート Docker コンテナー レジストリ サービスです。Azure Container Registry is a managed, private Docker container registry service for building, storing, and serving Docker container images. このクイックスタートでは、PowerShell を使用して Azure Container Registry を作成する方法を簡単に説明します。In this quickstart, you learn how to create an Azure container registry using PowerShell. 次に、Docker コマンドを使用してコンテナー イメージをレジストリにプッシュし、最後にレジストリからイメージをプルして実行します。Then, use Docker commands to push a container image into the registry, and finally pull and run the image from your registry.

前提条件Prerequisites

注意

この記事は、新しい Azure PowerShell Az モジュールを使用するために更新されました。This article has been updated to use the new Azure PowerShell Az module. Az モジュールと AzureRM の互換性の詳細については、「Introducing the new Azure PowerShell Az module (新しい Azure PowerShell Az モジュールの概要)」を参照してください。To learn more about the new Az module and AzureRM compatibility, see Introducing the new Azure PowerShell Az module. インストール手順については、Azure PowerShell のインストール を参照してください。For installation instructions, see Install Azure PowerShell.

このクイック スタートには、Azure PowerShell モジュールが必要です。This quickstart requires Azure PowerShell module. Get-Module -ListAvailable Az を実行して、インストールされたバージョンを判断します。Run Get-Module -ListAvailable Az to determine your installed version. インストールまたはアップグレードする必要がある場合は、Azure PowerShell モジュールのインストールに関するページを参照してください。If you need to install or upgrade, see Install Azure PowerShell module.

Docker もローカルにインストールする必要があります。You must also have Docker installed locally. Docker には macOSWindows、[Linux] docker-linuxシステム用のパッケージがあります。Docker provides packages for macOS, Windows, and Linux systems.

Azure Cloud Shell には、必要な Docker コンポーネント (dockerd デーモン) すべてが含まれていないため、このクイックスタートで Cloud Shell を使用することはできません。Because the Azure Cloud Shell doesn't include all required Docker components (the dockerd daemon), you can't use the Cloud Shell for this quickstart.

Azure へのサインインSign in to Azure

Connect-AzAccount コマンドで Azure サブスクリプションにサインインし、画面上の指示に従います。Sign in to your Azure subscription with the Connect-AzAccount command, and follow the on-screen directions.

Connect-AzAccount

リソース グループの作成Create resource group

Azure での認証が済んだら、New-AzResourceGroup を使用してリソース グループを作成します。Once you're authenticated with Azure, create a resource group with New-AzResourceGroup. リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。A resource group is a logical container in which you deploy and manage your Azure resources.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

コンテナー レジストリを作成するCreate container registry

次に、New-AzContainerRegistry コマンドを使用して新しいリソース グループにコンテナー レジストリを作成します。Next, create a container registry in your new resource group with the New-AzContainerRegistry command.

レジストリの名前は Azure 内で一意にする必要があります。また、5 ~ 50 文字の英数字を含める必要があります。The registry name must be unique within Azure, and contain 5-50 alphanumeric characters. 次の例では、「myContainerRegistry007」という名前のレジストリを作成しています。The following example creates a registry named "myContainerRegistry007." 以下のコマンドで myContainerRegistry007 を置換後実行して、レジストリを作成します。Replace myContainerRegistry007 in the following command, then run it to create the registry:

$registry = New-AzContainerRegistry -ResourceGroupName "myResourceGroup" -Name "myContainerRegistry007" -EnableAdminUser -Sku Basic

このクイック スタートでは、Basic レジストリを作成します。これは、Azure Container Registry について学習している開発者にとって、コストが最適なオプションです。In this quickstart you create a Basic registry, which is a cost-optimized option for developers learning about Azure Container Registry. 利用可能なサービス レベルの詳細については、「Container Registry の SKU」を参照してください。For details on available service tiers, see Container registry SKUs.

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

コンテナー イメージをプッシュしたりプルしたりするには、あらかじめレジストリにログインしておく必要があります。Before pushing and pulling container images, you must log in to your registry. 運用環境のシナリオでは、コンテナー レジストリにアクセスするために個人 ID またはサービス プリンシパルを使用する必要がありますが、このクイック スタートでは、作業を簡略化するために、Get-AzContainerRegistryCredential コマンドを使用して、レジストリ上の管理者ユーザーを有効にします。In production scenarios you should use an individual identity or service principal for container registry access, but to keep this quickstart brief, enable the admin user on your registry with the Get-AzContainerRegistryCredential command:

$creds = Get-AzContainerRegistryCredential -Registry $registry

次に、docker login を実行してログインします。Next, run docker login to log in:

$creds.Password | docker login $registry.LoginServer -u $creds.Username --password-stdin

このコマンドは、完了すると Login Succeeded を返します。The command returns Login Succeeded once completed.

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

Azure Container Registry にイメージをプッシュするには、まずイメージを用意する必要があります。To push an image to an Azure Container registry, you must first have an image. ローカル コンテナー イメージがまだない場合は、次の docker pull コマンドを実行して、既存のイメージを Docker Hub からプルします。If you don't yet have any local container images, run the following docker pull command to pull an existing image from Docker Hub. この例では、hello-world イメージをプルします。For this example, pull the hello-world image.

docker pull hello-world

イメージをレジストリにプッシュするには、ACR ログイン サーバーの完全修飾名を使用して、そのイメージにタグを付けておく必要があります。Before you can push an image to your registry, you must tag it with the fully qualified name of your ACR login server. ログイン サーバー名は、<registry-name>.azurecr.io (すべて小文字) という形式です。たとえば、mycontainerregistry007.azurecr.io などです。The login server name is in the format <registry-name>.azurecr.io (all lowercase), for example, mycontainerregistry007.azurecr.io.

docker tag コマンドを使用してイメージにタグ付けします。Tag the image using the docker tag command. <acrLoginServer> を ACR インスタンスのログイン サーバー名で置き換えます。Replace <acrLoginServer> with the login server name of your ACR instance.

docker tag hello-world <acrLoginServer>/hello-world:v1

最後に、docker push を使用して、ACR インスタンスにイメージをプッシュします。Finally, use docker push to push the image to the ACR instance. <acrLoginServer> を ACR インスタンスのログイン サーバー名で置き換えます。Replace <acrLoginServer> with the login server name of your ACR instance. この例では、hello-world レポジトリを作成します。これには、hello-world:v1 イメージが含まれています。This example creates the hello-world repository, containing the hello-world:v1 image.

docker push <acrLoginServer>/hello-world:v1

コンテナー レジストリにイメージをプッシュした後は、ローカルの Docker 環境から hello-world:v1 イメージを削除します After pushing the image to your container registry, remove the hello-world:v1 image from your local Docker environment. (この docker rmi コマンドは、Azure コンテナー リポジトリ内の hello-world リポジトリからイメージを削除しないことに注意してください)。(Note that this docker rmi command does not remove the image from the hello-world repository in your Azure container registry.)

docker rmi <acrLoginServer>/hello-world:v1

レジストリからイメージを実行するRun image from registry

ここで、docker run を使用して、コンテナー レジストリから hello-world:v1 コンテナー イメージをプルして実行できます。Now, you can pull and run the hello-world:v1 container image from your container registry by using docker run:

docker run <acrLoginServer>/hello-world:v1  

出力例:Example output:

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

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

[...]

リソースのクリーンアップClean up resources

このクイック スタートで作成したリソースでの作業が完了したら、Remove-AzResourceGroup コマンドを使用して、リソース グループ、コンテナー レジストリ、およびそこに格納されているコンテナー イメージを削除します。Once you're done working with the resources you created in this quickstart, use the Remove-AzResourceGroup command to remove the resource group, the container registry, and the container images stored there:

Remove-AzResourceGroup -Name myResourceGroup

次の手順Next steps

このクイック スタートでは、Azure PowerShell を使って Azure Container Registry を作成し、コンテナー イメージをプッシュしてから、レジストリからイメージをプルして実行しました。In this quickstart, you created an Azure Container Registry with Azure PowerShell, pushed a container image, and pulled and ran the image from the registry. Azure Container Registry のチュートリアルに進んで、ACR についての理解を深めましょう。Continue to the Azure Container Registry tutorials for a deeper look at ACR.