Отправка образов в реестр контейнеров Azure с помощью интерфейса командной строки Docker

В реестре контейнеров Azure хранятся частные образы контейнеров и другие артефакты, а также осуществляется управление ими (подобно тому, как в Docker Hub хранятся общедоступные образы контейнеров Docker). Интерфейс командной строки Docker (Docker CLI) позволяет входить в реестр контейнеров, а также выполнять отправку, извлечение и другие операции с образом контейнеров.

Выполняя следующие действия, вы скачаете общедоступный образ NGINX, поместите его в частный реестр контейнеров Azure, отправите его в свой реестр, а затем извлечете его от туда.

Предварительные требования

  • Реестр контейнеров Azure. Создайте реестр контейнеров в своей подписке Azure. Например, можно использовать портал Azure, Azure CLI или Azure PowerShell.
  • Docker CLI. Также необходим локально установленный модуль Docker. Docker предоставляет пакеты, которые позволяют быстро настроить Docker в системе под управлением macOS, Windows или Linux.

Вход в раздел реестра

Существуют несколько способов выполнить аутентификацию в частном реестре контейнеров.

При работе в командной строке мы рекомендуем выполнить команду Azure CLI az acr login. Например, чтобы войти в реестр с именем myregistry, войдите в Azure CLI, а затем выполните аутентификацию в реестре:

az login
az acr login --name myregistry

Вы также можете выполнить вход с помощью команды docker login. Например, назначение субъекта-службы для реестра позволяет автоматизировать некоторые сценарии. При запуске следующей команды, когда появляется запрос в интерактивном режиме, укажите идентификатор приложения (имя пользователя) и пароль субъекта-службы. Рекомендации по управлению учетными данными см. в справочнике по команде docker login.

docker login myregistry.azurecr.io

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

Примечание

  • Для более быстрого и удобного входа можно использовать Visual Studio Code с расширением Docker.

Совет

Всегда указывайте полное имя реестра (все знаки в нижнем реестре), когда используете docker login и когда отмечаете изображения тегами для отправки в свой реестр. В примерах этой статьи полное доменное имя выглядит так: myregistry.azurecr.io.

Извлечение общедоступного образа NGINX

Сначала общедоступный образ NGINX нужно отправить на локальный компьютер. В этом примере образ извлекается из Microsoft Container Registry.

docker pull mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine

Локальный запуск контейнера

Выполните указанную ниже команду docker run, чтобы запустить локальный экземпляр контейнера NGINX в интерактивном режиме (-it) на порте 8080. Аргумент --rm указывает, что контейнер следует удалить, когда вы его остановите.

docker run -it --rm -p 8080:80 mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine

Перейдите по адресу http://localhost:8080, чтобы просмотреть веб-страницу по умолчанию, обслуживаемую Nginx в выполняющемся контейнере. Вы должны увидеть страницу, аналогичную показанной ниже:

Nginx на локальном компьютере

Так как вы запустили контейнер в интерактивном режиме с помощью -it, вы можете увидеть выходные данные сервера Nginx в командной строке после перемещения к нему в браузере.

Чтобы остановить и удалить контейнер, нажмите Control+C.

Создание псевдонима образа

Выполните команду docker tag, чтобы создать псевдоним образа с полным путем к вашему реестру. Чтобы избежать беспорядка в корне реестра, эта команда указывает пространство имен samples.

docker tag mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine myregistry.azurecr.io/samples/nginx

Дополнительные сведения о расстановке тегов с помощью пространства имен см. в разделе Пространства имен репозитория статьи Рекомендации по использованию реестра контейнеров Azure.

Отправка образа в реестр

Теперь, когда вы отметили образ с абсолютным путем к частному реестру тегами, его можно отправить в реестр, выполнив команду docker push.

docker push myregistry.azurecr.io/samples/nginx

Извлечение образа из реестра

Выполните команду docker pull, чтобы извлечь образ из реестра:

docker pull myregistry.azurecr.io/samples/nginx

Запуск контейнера Nginx

Выполните команду docker run, чтобы запустить образ, извлеченный из реестра:

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

Перейдите по адресу http://localhost:8080, чтобы просмотреть запущенный контейнер.

Чтобы остановить и удалить контейнер, нажмите Control+C.

Удаление образа (необязательно)

Если вам больше не нужен образ Nginx, можно удалить его локально, выполнив команду docker rmi.

docker rmi myregistry.azurecr.io/samples/nginx

Чтобы удалить образы из реестра контейнеров Azure, выполните команду Azure CLI az acr repository delete. Например, эта команда удаляет манифест, на который ссылается тег samples/nginx:latest, все данные отдельного слоя и все другие теги, ссылающиеся на манифест.

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

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

Теперь, когда вы знаете основы, можно приступать к использованию реестра. Например, можно развернуть образы контейнера из реестра в следующие службы:

При необходимости установите расширение Docker для Visual Studio Code и расширение учетной записи Azure для работы со своими реестрами контейнеров Azure. Извлекайте и отправляйте образы в реестр контейнеров Azure или запускайте Задачи ACR в Visual Studio Code.