Отправка первого образа в частный реестр контейнеров Docker с помощью интерфейса командной строки DockerPush your first image to a private Docker container registry using the Docker CLI

В реестре контейнеров Azure хранятся частные образы контейнеров Docker, а также осуществляется управление ими (подобно тому, как в Docker Hub хранятся общедоступные образы 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 или с помощью Azure CLI.For example, use the Azure portal or the Azure CLI.
  • Docker CLI. Также необходим локально установленный модуль Docker.Docker CLI - 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.

Вход в раздел реестра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. Например, назначение субъекта-службы для реестра позволяет автоматизировать некоторые сценарии.For example, you might have assigned a service principal to your registry for an automation scenario. При запуске следующей команды, когда появляется запрос в интерактивном режиме, укажите идентификатор приложения (имя пользователя) и пароль субъекта-службы.When you run the following command, interactively provide the service principal appID (username) and password when prompted. Рекомендации по управлению учетными данными см. в справочнике по команде docker login.For best practices to manage login credentials, see the docker login command reference:

docker login myregistry.azurecr.io

По завершению обе команды возвращают Login Succeeded.Both commands return Login Succeeded once completed.

Совет

Всегда указывайте полное имя реестра (все знаки в нижнем реестре), когда используете 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.

Извлечение официального образа NginxPull 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 в интерактивном режиме (-it) на порте 8080.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 в работающем контейнере.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.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

Запуск контейнера NginxStart 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. Например, эта команда удаляет манифест, на который ссылается тег samples/nginx:latest, все данные отдельного слоя и все другие теги, ссылающиеся на манифест.For example, the following command deletes the manifest referenced by the samples/nginx:latest tag, any unique layer data, and all other tags referencing the manifest.

az acr repository delete --name myregistry --image samples/nginx:latest

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

Теперь, когда вы знаете основы, можно приступать к использованию реестра.Now that you know the basics, you're ready to start using your registry! Например, можно развернуть образы контейнера из реестра в следующие службы:For example, deploy container images from your registry to:

При необходимости установите расширение Docker для Visual Studio Code и расширение учетной записи Azure для работы со своими реестрами контейнеров Azure.Optionally install the Docker Extension for Visual Studio Code and the Azure Account extension to work with your Azure container registries. Извлекайте и отправляйте образы в реестр контейнеров Azure или запускайте Задачи ACR в Visual Studio Code.Pull and push images to an Azure container registry, or run ACR Tasks, all within Visual Studio Code.