Краткое руководство. Создание закрытого реестра контейнеров с помощью Azure CLIQuickstart: Create a private container registry using the Azure CLI

Реестр контейнеров Azure — это управляемая служба реестра контейнеров Docker, используемая для хранения частных образов контейнеров Docker.Azure Container Registry is a managed Docker container registry service used for storing private Docker container images. В этом руководстве рассматривается создание экземпляра реестра контейнеров Azure с помощью Azure CLI.This guide details creating an Azure Container Registry instance using the Azure CLI. Затем используйте команды Docker, чтобы отправить образ контейнера в реестр, после чего извлеките образ из контейнера и запустите его.Then, use Docker commands to push a container image into the registry, and finally pull and run the image from your registry.

Для этого руководства требуется Azure CLI (рекомендуется версия 2.0.55 и выше).This quickstart requires that you are running the Azure CLI (version 2.0.55 or later recommended). Чтобы узнать версию, выполните команду az --version.Run az --version to find the version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0.If you need to install or upgrade, see Install Azure CLI.

Также необходим локально установленный модуль Docker.You must also have Docker installed locally. Docker предоставляет пакеты, которые позволяют быстро настроить Docker в любой системе macOS, Windows или Linux.Docker provides packages that easily configure Docker on any macOS, Windows, or Linux system.

Та как в службе Azure Cloud Shell нет всех необходимых компонентов Docker (управляющая программа dockerd), ее нельзя использовать в этом руководстве.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.

Создание группы ресурсовCreate a resource group

Создайте группу ресурсов с помощью команды az group create.Create a resource group with the az group create command. Группа ресурсов Azure является логическим контейнером, в котором происходит развертывание ресурсов Azure и управление ими.An Azure resource group is a logical container into which Azure resources are deployed and managed.

В следующем примере создается группа ресурсов с именем myResourceGroup в расположении eastus.The following example creates a resource group named myResourceGroup in the eastus location.

az group create --name myResourceGroup --location eastus

Создание реестра контейнеровCreate a container registry

В этом кратком руководстве описано, как создать реестр ценовой категории Базовый. Это оптимальный (недорогой) вариант для разработчиков, которые знакомятся с Реестром контейнеров Azure.In this quickstart you create a Basic registry, which is a cost-optimized option for developers learning about Azure Container Registry. Дополнительные сведения об уровнях служб см. в статье Номера SKU реестра контейнеров.For details on available service tiers, see Container registry SKUs.

Создайте экземпляр ACR с помощью команды az acr create.Create an ACR instance using the az acr create command. Имя реестра должно быть уникальным в пределах Azure и содержать от 5 до 50 буквенно-цифровых символов.The registry name must be unique within Azure, and contain 5-50 alphanumeric characters. В следующем примере используется имя myContainerRegistry007.In the following example, myContainerRegistry007 is used. Замените его уникальным значением.Update this to a unique value.

az acr create --resource-group myResourceGroup --name myContainerRegistry007 --sku Basic

При создании реестра выходные данные выглядят так:When the registry is created, the output is similar to the following:

{
  "adminUserEnabled": false,
  "creationDate": "2019-01-08T22:32:13.175925+00:00",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myContainerRegistry007",
  "location": "eastus",
  "loginServer": "mycontainerregistry007.azurecr.io",
  "name": "myContainerRegistry007",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Запишите loginServer в выходных данных (в нижнем регистре). Это полное доменное имя реестра.Take note of loginServer in the output, which is the fully qualified registry name (all lowercase). В дальнейшем в этом кратком руководстве будет использоваться <acrName> как заполнитель имени реестра контейнеров.Throughout the rest of this quickstart <acrName> is a placeholder for the container registry name.

Вход в раздел реестраLog in to registry

Перед отправкой и извлечением образов контейнеров необходимо войти в реестр.Before pushing and pulling container images, you must log in to the registry. Чтобы сделать это, используйте команду az acr login.To do so, use the az acr login command.

az acr login --name <acrName>

По завершении команда возвращает сообщение Login Succeeded.The command returns a Login Succeeded message once completed.

Отправка образа в реестрPush image to registry

Чтобы отправить образ в реестр контейнеров Azure, сначала нужно получить этот образ.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. Имя сервера входа имеет формат <имя_реестра>.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

После передачи образа в реестр контейнеров удалите образ hello-world:v1 из локальной среды Docker.After pushing the image to your container registry, remove the hello-world:v1 image from your local Docker environment. (Обратите внимание, что команда docker rmi не приводит к удалению образа из репозитория hello-world в реестре контейнеров Azure.)(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

Список образов контейнеровList container images

В следующем примере перечисляются репозитории в реестре.The following example lists the repositories in your registry:

az acr repository list --name <acrName> --output table

Выходные данные:Output:

Result
----------------
hello-world

В следующем примере перечисляются теги в репозитории hello-world.The following example lists the tags on the hello-world repository.

az acr repository show-tags --name <acrName> --repository hello-world --output table

Выходные данные:Output:

Result
--------
v1

Запуск образа из реестраRun image from registry

Теперь вы можете извлекать и запускать образ контейнера hello-world:v1 из реестра контейнеров с помощью команды docker run: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

Ненужные группу ресурсов, реестр контейнеров и все образы контейнеров можно удалить с помощью команды az group delete.When no longer needed, you can use the az group delete command to remove the resource group, the container registry, and the container images stored there.

az group delete --name myResourceGroup

Дополнительная информацияNext steps

С помощью этого краткого руководства вы создали Реестр контейнеров Azure с использованием Azure CLI, отправили образ контейнера в реестр, а затем извлекли этот образ оттуда и запустили его.In this quickstart, you created an Azure Container Registry with the Azure CLI, pushed a container image to the registry, and pulled and ran the image from the registry. Чтобы продолжить работу с Реестром контейнеров Azure, перейдите к следующим руководствам.Continue to the Azure Container Registry tutorials for a deeper look at ACR.