Руководство. Развертывание приложения-контейнера в службе "Экземпляры контейнеров Azure"

Это последняя из трех частей руководства. С помощью предыдущих частей мы создали образ контейнера, который затем передали в реестр контейнеров Azure. Эта часть завершает серию руководств. Мы развернем контейнер в службе "Экземпляры контейнеров Azure".

Изучив это руководство, вы:

  • развернете контейнер в службе "Экземпляры контейнеров 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 CLI

В этом разделе с помощью Azure CLI вы развернете образ, созданный в первом руководстве и переданный в реестр контейнеров Azure во втором руководстве. Обязательно выполните инструкции в этих руководствах, прежде чем продолжить.

Получение учетных данных реестра

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

Рекомендуется создать и настроить субъект-службу Microsoft Entra с разрешениями на извлечение в реестр. Примеры скриптов для создания субъекта-службы с необходимыми разрешениями см. в статье Authenticate with Azure Container Registry from Azure Container Instances (Проверка подлинности с помощью Реестра контейнеров Azure из службы "Экземпляры контейнеров Azure"). Запишите идентификатор и пароль субъекта-службы. Эти учетные данные пригодятся для доступа к реестру во время развертывания контейнера.

Также необходимо получить полное имя сервера для входа в реестр контейнеров (замените <acrName> именем реестра):

az acr show --name <acrName> --query loginServer

Развертывание контейнера

Теперь разверните контейнер с помощью команды az container create. Замените <acrLoginServer> значениями, полученными посредством предыдущих команд. Замените <service-principal-ID> и <service-principal-password> идентификатором и паролем субъекта-службы, который вы создали для доступа к реестру. Замените <aciDnsLabel> необходимым DNS-именем.

az container create --resource-group myResourceGroup --name aci-tutorial-app --image <acrLoginServer>/aci-tutorial-app:v1 --cpu 1 --memory 1 --registry-login-server <acrLoginServer> --registry-username <service-principal-ID> --registry-password <service-principal-password> --ip-address Public --dns-name-label <aciDnsLabel> --ports 80

В течение нескольких секунд вы должны получить исходный ответ Azure. Значение --dns-name-label должно быть уникальным в пределах региона Azure, в котором создается экземпляр контейнера. Если при выполнении команды появится сообщение об ошибке Метка DNS-имени, измените значение в предыдущей команде.

Проверка хода выполнения развертывания

Чтобы просмотреть состояние развертывания, используйте команду az container show:

az container show --resource-group myResourceGroup --name aci-tutorial-app --query instanceView.state

Повторяйте выполнение команды az container show, пока состояние не изменится с Ожидание на Выполняется, что должно занять не больше минуты. Если контейнер находится в состоянии Выполняется, перейдите к следующему шагу.

Просмотр приложения и журналов контейнера

После успешного развертывания отобразите полное доменное имя контейнера (FQDN) с помощью команды az container show:

az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn

Например:

"aci-demo.eastus.azurecontainer.io"

Чтобы увидеть работающее приложение, перейдите к полученному DNS-имени в любом браузере:

Приложение Hello World в браузере

Также можно просмотреть выходные данные журнала контейнера:

az container logs --resource-group myResourceGroup --name aci-tutorial-app

Пример результата:

listening on port 80
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET / HTTP/1.1" 200 1663 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://aci-demo.eastus.azurecontainer.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"

Очистка ресурсов

Если ресурсы, созданные в этом руководстве, больше не требуются, можно выполнить команду az group delete, чтобы удалить группу ресурсов и все ресурсы, которые она содержит. Эта команда удаляет созданный вами реестр контейнеров, а также запущенный контейнер и все связанные с ним ресурсы.

az group delete --name myResourceGroup

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

С помощью этого руководства мы завершили процесс развертывания контейнера в службе "Экземпляры контейнеров Azure". Были выполнены следующие действия:

  • развертывание контейнера из реестра контейнеров Azure с помощью Azure CLI;
  • Просмотр приложения в браузере
  • Просмотр журналов контейнера

Теперь, когда вы изучили основные принципы работы, узнайте больше о службе "Экземпляры контейнеров Azure", например, о том, как работают группы контейнеров.

Группы контейнеров в службе "Экземпляры контейнеров Azure"