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

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

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

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

  • Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись перед началом работы.
  • Реестр контейнеров Azure в подписке Azure. Его можно создать с помощью портала Azure, Azure CLI или Azure PowerShell.
  • Также необходим локально установленный модуль 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.

Например, вы могли бы назначить субъекта-службы для вашего реестра в сценарии автоматизации. При выполнении следующей команды укажите в интерактивном режиме имя пользователя (ID приложения основного сервиса) и пароль, когда будет запрошено:

docker login myregistry.azurecr.io

Совет

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

Загрузить общедоступный образ NGINX

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

docker pull nginx

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

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

docker run -it --rm -p 8080:80 nginx

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

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

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

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

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

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

docker tag nginx myregistry.azurecr.io/samples/nginx

Дополнительные сведения о тегировании с пространствами имен см. в рекомендациях по лучшему использованию пространств имен репозитория](container-registry-best-practices.md#repository-namespaces).

Поместите образ в ваш реестр

Теперь, когда вы присвоили образу тег с полностью квалифицированным путем к частному реестру, его можно отправить в реестр, выполнив команду 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, чтобы просмотреть запущенный контейнер.

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

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

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

docker rmi myregistry.azurecr.io/samples/nginx

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

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

Следующие шаги

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