Развертывание образа Docker в экземпляре контейнера Azure

Завершено

Экземпляр контейнера Azure — это служба, которая загружает и запускает образы Docker по запросу. Служба экземпляров контейнеров Azure может извлечь образ из реестра, такого как Docker Hub или реестр контейнеров Azure.

Ваша организация хочет использовать Azure для выполнения своих веб-приложений. По этой причине рекомендуется хранить образы в Реестр контейнеров Azure и запускать их с помощью службы экземпляра контейнеров Azure.

В этом уроке вы узнаете, как отправить образ Docker в Реестр контейнеров Azure. Затем вы выполните образ с помощью службы экземпляров контейнеров Azure.

Использование Реестра контейнеров Azure для хранения контейнера

Реестр контейнеров Azure — это служба размещения реестра, предоставляемая Azure. Каждый создаваемый вами ресурс реестра контейнеров Azure представляет собой отдельный реестр с уникальным URL-адресом. Эти реестры являются закрытыми, то есть они требуют прохождение проверки подлинности для отправки или извлечения образов. Реестр контейнеров Azure выполняется в облаке и предоставляет аналогичные уровни масштабируемости и доступности другим службам Azure.

Вы можете создать реестр с помощью портал Azure или интерфейса командной строки Azure (CLI). Для этого можно использовать Cloud Shell на портале Azure или локальный экземпляр Azure CLI. Помните, что перед созданием реестра необходимо создать группу ресурсов. При создании группы ресурсов рекомендуется выбрать ближайший регион. В этом примере имя нашей группы ресурсов — mygroup, а расположение — западная часть США.

Вам не нужно выполнять какие-либо из следующих команд. Мы увидим это в следующем упражнении.

Примечание.

Для контейнера необходимо указать уникальное имя. Здесь можно проверить, не используется ли уже такое имя.

az group create --name mygroup --location westus
az acr create --name <unique name> --resource-group mygroup --sku standard --admin-enabled true

Различные номера SKU предоставляют различные уровни масштабируемости и хранилища.

Репозитории реестра контейнеров Azure являются закрытыми — они не поддерживают доступ без проверки подлинности. Для извлечения образов из репозитория реестра контейнеров Azure используйте команду docker login и укажите URL-адрес сервера входа для реестра. URL-адрес сервера входа для реестра в реестре контейнеров Azure имеет форму <имя_реестра>.azurecr.io.

docker login myregistry.azurecr.io

При входе в Docker будет предложено ввести имя пользователя и пароль. Чтобы получить эти сведения, вы можете перейти на портал Azure и найти ключи доступа к реестру либо выполнить указанную ниже команду.

az acr credential show --name myregistry --resource-group mygroup

Для отправки образа с локального компьютера в реестр Docker используется команда docker push. Перед отправкой нужно создать псевдоним для образа, который указывает конкретный репозиторий, и тег, создаваемый в реестре Docker. Имя репозитория должно иметь вид *<login_server>/<image_name>:<tag/>. Чтобы выполнить эту операцию, используйте команду docker tag. В следующем примере создается псевдоним для образа reservationsystem.

docker tag reservationsystem myregistry.azurecr.io/reservationsystem:v2

При запуске docker image ls вы увидите две записи для этого образа: одна с исходным именем, а другая — с новым псевдонимом.

После выполнения команды tag вы можете передать образ в реестр в Реестре контейнеров Azure с помощью следующей команды.

docker push myregistry.azurecr.io/reservationsystem:v2

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

az acr repository list --name myregistry --resource-group mygroup

Вы также можете получить список образов в реестре с помощью команды acr repository show.

az acr repository show --repository reservationsystem --name myregistry --resource-group mygroup

Примечание.

Для каждого образа в репозитории отображается по меньшей мере два тега. Одним тегом будет значение, указанное вами в команде acr build (v1 в предыдущем примере). Другим будет значение latest. Каждый раз при повторном создании образа реестр контейнеров Azure автоматически создает тег latest в качестве псевдонима для самой последней версии образа.

Использование экземпляра контейнера Azure для запуска образа

Служба экземпляров контейнеров Azure может загрузить образ из реестра контейнеров Azure и запустить его в Azure.

Вы можете создать экземпляр контейнера и запустить образ с помощью команды az container create. Укажите имя пользователя и пароль для реестра в параметрах registry-username и registry-password. Для экземпляра будет выделен IP-адрес. Он используется для доступа к экземпляру. При необходимости можно указать DNS-имя, если вам удобнее ссылаться на экземпляр с помощью более понятной метки. Обратите внимание, что образ указывается как URL-адрес, ссылающийся на реестр (myregistry) в службе реестра контейнеров Azure (azurecr.io). Если вы используете Docker Hub или любой другой реестр, замените этот URL-адрес на URL-адрес образа в соответствующем реестре.

az container create --resource-group mygroup --name myinstance --image myregistry.azurecr.io/myapp:latest --dns-name-label mydnsname --registry-username <username> --registry-password <password>

Экземпляр будет размещен в Azure с доменным именем на основе указанной вами DNS-метки. Вы можете найти полное доменное имя экземпляра, отправив запрос на IP-адрес этого экземпляра.

az container show --resource-group mygroup --name myinstance --query ipAddress.fqdn

Для доступа к приложению можно использовать веб-браузер. Вы можете перейти к URL-адресу, возвращенный этой командой; Мы узнаем, как в следующем уроке.