Руководство. Создание реестра контейнеров Azure и отправка образа контейнера
Это вторая часть руководства, состоящего из трех частей. Первая часть руководства по созданию образа контейнера Docker для веб-приложения Node.js. В этом руководстве мы поместим образ в реестр контейнеров Azure. Если вы еще не создали образ контейнера, вернитесь к первой части этой серии — руководству по созданию образа контейнера.
Реестр контейнеров Azure является частным реестром Docker в Azure. В этом учебнике, второй части серии, вы:
- создадите экземпляр Реестра контейнеров Azure с помощью Azure CLI;
- добавите образ контейнера для помещения в реестр контейнеров Azure;
- отправите образ в реестр.
В следующей статье (последнем руководстве в серии) вы развернете контейнер из частного реестра в службе "Экземпляры контейнеров Azure".
Подготовка к работе
Для работы с этим руководством вам потребуются следующие ресурсы:
Azure CLI. Интерфейс командной строки Azure версии 2.0.29 или более поздней, установленный на локальном компьютере. Чтобы узнать версию, выполните команду az --version
. Если вам необходимо выполнить установку или обновление, обратитесь к статье Установка Azure CLI.
Docker. Для выполнения действий, описанных в этом руководстве, требуется базовое понимание таких основных понятий Docker, как контейнеры и образы контейнеров, а также знание основных команд docker
. Ознакомьтесь с общими сведениями о Docker и контейнерах.
Docker. Чтобы завершить работу с этим руководством, необходимо установить Docker локально. Docker предоставляет пакеты, которые настраивают среду Docker в ОС macOS, Windows и Linux.
Внимание
Так как Azure Cloud Shell не включает управляющую программу Docker, для работы с этим руководством необходимо установить среду разработки Azure CLI и модуль Docker на свой локальный компьютер. В этом руководстве Azure Cloud Shell не используется.
Создание реестра контейнеров Azure
Перед созданием реестра контейнеров необходимо создать группу ресурсов, куда он будет развернут. Группа ресурсов — это логическая коллекция, в которой выполняется развертывание всех ресурсов Azure и управление ими.
Создайте группу ресурсов с помощью команды az group create. Следующий пример представляет группу ресурсов под названием myResourceGroup в регионе eastus:
az group create --name myResourceGroup --location eastus
После создания группы ресурсов создайте реестр контейнеров Azure с помощью команды az acr create. Имя реестра контейнеров должно быть уникальным в пределах Azure и содержать от 5 до 50 буквенно-цифровых знаков. Замените <acrName>
уникальным именем реестра.
az acr create --resource-group myResourceGroup --name <acrName> --sku Basic
Ниже приведена часть выходных данных для нового реестра контейнеров Azure mycontainerregistry082.
{
"creationDate": "2020-07-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>
используется как заполнитель для имени реестра контейнеров, выбранного на этом шаге.
Вход в реестр контейнеров
Войдите в экземпляр реестра контейнеров Azure, прежде чем передавать в него образы. Используйте команду az acr login, чтобы выполнить операцию. Укажите уникальное имя реестра контейнеров, выбранное при его создании.
az acr login --name <acrName>
Например:
az acr login --name mycontainerregistry082
По завершении команда возвращает Login Succeeded
.
Login Succeeded
Добавление тега к образу контейнера
Чтобы отправить образ контейнера в частный реестр, например в реестр контейнеров Azure, сначала необходимо добавить для образа тег с полным именем сервера входа в реестр.
Сначала получите полное имя сервера входа в реестр для реестра контейнеров Azure. Выполните следующую команду az acr show и замените <acrName>
именем только что созданного реестра:
az acr show --name <acrName> --query loginServer --output table
Например, если имя реестра — mycontainerregistry082:
az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io
Теперь с помощью команды docker images отобразите список локальных образов:
docker images
Вместе с другими образами, присутствующими на компьютере, появится образ aci-tutorial-app, созданный вами при работе с предыдущим руководством.
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 minutes ago 68.1 MB
Добавьте к образу aci-tutorial-app тег сервера входа реестра контейнеров. Также добавьте тег :v1
в конец имени образа, чтобы указать номер версии образа. Замените <acrLoginServer>
полученным ранее результатом выполненной команды az acr show.
docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1
Чтобы проверить операцию присвоения тегов, снова выполните команду docker images
.
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
Передача образа в Реестр контейнеров Azure
Теперь, когда вы отметили образ aci-tutorial-app с полным именем сервера входа в частный реестр, его можно отправить в реестр с помощью команды docker push. Замените <acrLoginServer>
полным именем сервера входа, полученным на предыдущем шаге.
docker push <acrLoginServer>/aci-tutorial-app:v1
Операция push
займет от нескольких секунд до нескольких минут, в зависимости от подключения к Интернету. Ее выходные данные будут иметь следующий вид.
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
Получение списка образов в реестре контейнеров Azure
Чтобы проверить, находится ли отправленный образ в реестре контейнеров Azure, выведите список образов в реестре с помощью команды az acr repository list. Замените <acrName>
именем реестра контейнеров.
az acr repository list --name <acrName> --output table
Например:
az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app
Чтобы просмотреть теги для конкретного образа, воспользуйтесь командой az acr repository show-tags.
az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table
Вы должны увидеть результат, аналогичный приведенному ниже:
--------
v1
Следующие шаги
В этом руководстве вы подготовили реестр контейнеров Azure к использованию со службой "Экземпляры контейнеров Azure", а также передали образ контейнера в реестр. Были выполнены следующие действия:
- Создание экземпляра Реестра контейнеров Azure с помощью Azure CLI
- добавление тегов к образу контейнера для помещения в реестр контейнеров Azure;
- отправка образа в реестр контейнеров Azure.
Перейдите к следующему руководству, чтобы узнать, как развертывать контейнер в Azure с помощью службы "Экземпляры контейнеров Azure".