Отправка образов в реестр контейнеров 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 нужно отправить на локальный компьютер. В этом примере извлекает официальный образ Nginx.
docker pull nginx
Локальный запуск контейнера
Выполните указанную ниже команду docker run, чтобы запустить локальный экземпляр контейнера NGINX в интерактивном режиме (-it
) на порте 8080. Аргумент --rm
указывает, что контейнер следует удалить, когда вы его остановите.
docker run -it --rm -p 8080:80 nginx
Перейдите по адресу http://localhost:8080
, чтобы просмотреть веб-страницу по умолчанию, обслуживаемую Nginx в выполняющемся контейнере. Вы должны увидеть страницу, аналогичную показанной ниже:
Так как вы запустили контейнер в интерактивном режиме с помощью -it
, вы можете увидеть выходные данные сервера Nginx в командной строке после перемещения к нему в браузере.
Чтобы остановить и удалить контейнер, нажмите Control
+C
.
Создание псевдонима образа
Выполните команду docker tag, чтобы создать псевдоним образа с полным путем к вашему реестру. Чтобы избежать беспорядка в корне реестра, эта команда указывает пространство имен samples
.
docker tag nginx 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.