Руководство по Создание реестра контейнеров Azure и отправка образа контейнераTutorial: Create an Azure container registry and push a container image

Это вторая часть руководства, состоящего из трех частей.This is part two of a three-part tutorial. Первая часть руководства по созданию образа контейнера Docker для веб-приложения Node.js.Part one of the tutorial created a Docker container image for a Node.js web application. В этом руководстве мы поместим образ в реестр контейнеров Azure.In this tutorial, you push the image to Azure Container Registry. Если вы еще не создали образ контейнера, вернитесь к первой части этой серии — руководству по созданию образа контейнера.If you haven't yet created the container image, return to Tutorial 1 – Create container image.

Реестр контейнеров Azure является частным реестром Docker в Azure.Azure Container Registry is your private Docker registry in Azure. В этом учебнике, второй части серии, вы:In this tutorial, part two of the series, you:

  • создадите экземпляр Реестра контейнеров Azure с помощью Azure CLI;Create an Azure Container Registry instance with the Azure CLI
  • добавите образ контейнера для помещения в реестр контейнеров Azure;Tag a container image for your Azure container registry
  • отправите образ в реестр.Upload the image to your registry

В следующей статье (последнем руководстве в серии) вы развернете контейнер из частного реестра в службе "Экземпляры контейнеров Azure".In the next article, the last in the series, you deploy the container from your private registry to Azure Container Instances.

Перед началомBefore you begin

Для работы с этим руководством вам потребуются следующие ресурсы:You must satisfy the following requirements to complete this tutorial:

Azure CLI. Интерфейс командной строки Azure версии 2.0.29 или более поздней, установленный на локальном компьютере.Azure CLI: You must have Azure CLI version 2.0.29 or later installed on your local computer. Чтобы узнать версию, выполните команду az --version.Run az --version to find the version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI.If you need to install or upgrade, see Install the Azure CLI.

Docker. Для выполнения действий, описанных в этом учебнике, требуется базовое понимание таких основных понятий Docker, как контейнеры и образы контейнеров, а также знание основных команд docker.Docker: This tutorial assumes a basic understanding of core Docker concepts like containers, container images, and basic docker commands. Ознакомьтесь с общими сведениями о Docker и контейнерах.For a primer on Docker and container basics, see the Docker overview.

Docker. Для работы с этим руководством требуется установить Docker локально.Docker: To complete this tutorial, you need Docker installed locally. Docker предоставляет пакеты, которые настраивают среду Docker в ОС macOS, Windows и Linux.Docker provides packages that configure the Docker environment on macOS, Windows, and Linux.

Важно!

Так как Azure Cloud Shell не включает управляющую программу Docker, для работы с этим руководством необходимо установить среду разработки Azure CLI и модуль Docker на свой локальный компьютер.Because the Azure Cloud shell does not include the Docker daemon, you must install both the Azure CLI and Docker Engine on your local computer to complete this tutorial. В этом руководстве Azure Cloud Shell не используется.You cannot use the Azure Cloud Shell for this tutorial.

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

Перед созданием реестра контейнеров необходимо создать группу ресурсов, куда он будет развернут.Before you create your container registry, you need a resource group to deploy it to. Группа ресурсов — это логическая коллекция, в которой выполняется развертывание и администрирование всех ресурсов Azure.A resource group is a logical collection into which all Azure resources are deployed and managed.

Создайте группу ресурсов с помощью команды az group create.Create a resource group with the az group create command. В следующем примере создается группа ресурсов с именем myResourceGroup в регионе eastus.In the following example, a resource group named myResourceGroup is created in the eastus region:

az group create --name myResourceGroup --location eastus

После создания группы ресурсов создайте реестр контейнеров Azure с помощью команды az acr create.Once you've created the resource group, create an Azure container registry with the az acr create command. Имя реестра контейнеров должно быть уникальным в пределах Azure и содержать от 5 до 50 буквенно-цифровых знаков.The container registry name must be unique within Azure, and contain 5-50 alphanumeric characters. Замените <acrName> уникальным именем реестра.Replace <acrName> with a unique name for your registry:

az acr create --resource-group myResourceGroup --name <acrName> --sku Basic

Ниже приведен пример выходных данных для нового реестра контейнеров Azure с именем mycontainerregistry082 (показаны в сокращенном виде).Here's example output for a new Azure container registry named mycontainerregistry082 (shown here truncated):

...
{
  "creationDate": "2018-03-16T21:54:47.297875+00:00",
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
  "location": "eastus",
  "loginServer": "mycontainerregistry082.azurecr.io",
  "name": "mycontainerregistry082",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

В остальной части руководства <acrName> используется как заполнитель для имени реестра контейнеров, выбранного на этом шаге.The rest of the tutorial refers to <acrName> as a placeholder for the container registry name that you chose in this step.

Вход в реестр контейнеровLog in to container registry

Войдите в экземпляр реестра контейнеров Azure, прежде чем передавать в него образы.You must log in to your Azure Container Registry instance before pushing images to it. Используйте команду az acr login, чтобы выполнить операцию.Use the az acr login command to complete the operation. Укажите уникальное имя реестра контейнеров, выбранное при его создании.You must provide the unique name you chose for the container registry when you created it.

az acr login --name <acrName>

Пример:For example:

az acr login --name mycontainerregistry082

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

Login Succeeded

Добавление тега к образу контейнераTag container image

Чтобы отправить образ контейнера в частный реестр, например в реестр контейнеров Azure, сначала необходимо добавить для образа тег с полным именем сервера входа в реестр.To push a container image to a private registry like Azure Container Registry, you must first tag the image with the full name of the registry's login server.

Сначала получите полное имя сервера входа в реестр для реестра контейнеров Azure.First, get the full login server name for your Azure container registry. Выполните следующую команду az acr show и замените <acrName> именем только что созданного реестра:Run the following az acr show command, and replace <acrName> with the name of registry you just created:

az acr show --name <acrName> --query loginServer --output table

Например, если имя реестра — mycontainerregistry082:For example, if your registry is named mycontainerregistry082:

az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io

Теперь с помощью команды docker images отобразите список локальных образов:Now, display the list of your local images with the docker images command:

docker images

Вместе с другими образами, присутствующими на компьютере, появится образ aci-tutorial-app, созданный вами при работе с предыдущим руководством.Along with any other images you have on your machine, you should see the aci-tutorial-app image you built in the previous tutorial:

$ docker images
REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app    latest    5c745774dfa9    39 minutes ago    68.1 MB

Добавьте к образу aci-tutorial-app тег сервера входа реестра контейнеров.Tag the aci-tutorial-app image with the login server of your container registry. Также добавьте тег :v1 в конец имени образа, чтобы указать номер версии образа.Also, add the :v1 tag to the end of the image name to indicate the image version number. Замените <acrLoginServer> полученным ранее результатом выполненной команды az acr show.Replace <acrLoginServer> with the result of the az acr show command you executed earlier.

docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1

Чтобы проверить операцию присвоения тегов, снова выполните команду docker images.Run docker images again to verify the tagging operation:

$ docker images
REPOSITORY                                            TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app                                      latest    5c745774dfa9    39 minutes ago    68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app    v1        5c745774dfa9    7 minutes ago     68.1 MB

Передача образа в реестр контейнеров AzurePush image to Azure Container Registry

Теперь, когда вы отметили образ aci-tutorial-app с полным именем сервера входа в частный реестр, его можно отправить в реестр с помощью команды docker push.Now that you've tagged the aci-tutorial-app image with the full login server name of your private registry, you can push the image to the registry with the docker push command. Замените <acrLoginServer> полным именем сервера входа, полученным на предыдущем шаге.Replace <acrLoginServer> with the full login server name you obtained in the earlier step.

docker push <acrLoginServer>/aci-tutorial-app:v1

Операция push займет от нескольких секунд до нескольких минут, в зависимости от подключения к Интернету. Ее выходные данные будут иметь следующий вид.The push operation should take a few seconds to a few minutes depending on your internet connection, and output is similar to the following:

$ docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576

Получение списка образов в реестре контейнеров AzureList images in Azure Container Registry

Чтобы проверить, находится ли отправленный образ в реестре контейнеров Azure, выведите список образов в реестре с помощью команды az acr repository list.To verify that the image you just pushed is indeed in your Azure container registry, list the images in your registry with the az acr repository list command. Замените <acrName> именем реестра контейнеров.Replace <acrName> with the name of your container registry.

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

Пример:For example:

az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app

Чтобы просмотреть теги для конкретного образа, воспользуйтесь командой az acr repository show-tags.To see the tags for a specific image, use the az acr repository show-tags command.

az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table

Выходные данные должны иметь следующий вид.You should see output similar to the following:

az acr repository show-tags --name mycontainerregistry082 --repository aci-tutorial-app --output table
Result
--------
v1

Дальнейшие действияNext steps

В этом руководстве вы подготовили реестр контейнеров Azure к использованию со службой "Экземпляры контейнеров Azure", а также передали образ контейнера в реестр.In this tutorial, you prepared an Azure container registry for use with Azure Container Instances, and pushed a container image to the registry. Были выполнены следующие действия:The following steps were completed:

  • Создание экземпляра Реестра контейнеров Azure с помощью Azure CLICreated an Azure Container Registry instance with the Azure CLI
  • добавление тегов к образу контейнера для помещения в реестр контейнеров Azure;Tagged a container image for Azure Container Registry
  • отправка образа в реестр контейнеров Azure.Uploaded an image to Azure Container Registry

Перейдите к следующему руководству, чтобы узнать, как развертывать контейнер в Azure с помощью службы "Экземпляры контейнеров Azure".Advance to the next tutorial to learn how to deploy the container to Azure using Azure Container Instances: