Краткое руководство. Развертывание экземпляра контейнера в Azure с помощью Docker CLI

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

В этом кратком руководстве вы используете собственные команды Docker CLI, чтобы развернуть контейнер Docker и сделать его приложение доступным в Экземплярах контейнеров. Эта возможность предоставляется благодаря интеграции Docker и Azure. Через несколько секунд после выполнения команды docker run вы можете перейти к приложению, которое выполняется в контейнере:

Приложение, развернутое с помощью службы

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

Для целей этого краткого руководства вам понадобится Docker Desktop версии 2.3.0.5 или более поздней для Windows или macOS. Или же установите интерфейс командной строки интеграции Docker ACI для Linux.

Важно!

Поддерживаются не все функции Экземпляров контейнеров Azure. Предоставьте отзыв об интеграции Docker-Azure, создав вопрос в репозитории GitHub для aci-integration-beta.

Создание контекста Azure

Чтобы использовать команды Docker для запуска контейнеров в службе "Экземпляры контейнеров Azure", сначала войдите в Azure:

docker login azure

При появлении запроса введите или выберите свои учетные данные Azure.

Создайте контекст ACI, выполнив docker context create aci. Этот контекст связывает Docker с подпиской Azure и группой ресурсов, чтобы вы могли создавать экземпляры контейнеров и управлять ими. Например, чтобы создать контекст с именем myacicontext:

docker context create aci myacicontext

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

Запустите docker context ls, чтобы убедиться, что вы добавили контекст ACI в контексты Docker:

docker context ls

Создание контейнера

Создав контекст Docker, можно приступить к созданию контейнера в Azure. В этом кратком руководстве используется общедоступный образ mcr.microsoft.com/azuredocs/aci-helloworld. Этот образ содержит небольшое веб-приложение, написанное на Node.js, которое обслуживает статические HTML-страницы.

Сначала перейдите в контекст ACI. В этом контексте выполняются все последующие команды Docker.

docker context use myacicontext

Выполните команду docker run, чтобы создать экземпляр контейнера Azure с портом 80, доступным в Интернете.

docker run -p 80:80 mcr.microsoft.com/azuredocs/aci-helloworld

Пример выходных данных при успешном развертывании:

[+] Running 2/2
 ⠿ hungry-kirch            Created                                                                               5.1s
 ⠿ single--container--aci  Done                                                                                 11.3s
hungry-kirch

Запустите docker ps, чтобы получить сведения о выполняющемся контейнере и общедоступном IP-адресе:

docker ps

В примере выходных данных показан общедоступный IP-адрес, в данном случае 52.230.225.232:

CONTAINER ID        IMAGE                                        COMMAND             STATUS              PORTS
hungry-kirch        mcr.microsoft.com/azuredocs/aci-helloworld                       Running             52.230.225.232:80->80/tcp

Затем перейдите по IP-адресу в браузере. Если появится примерно такая веб-страница, поздравляем! Вы успешно развернули приложение, выполняющееся в контейнере Docker в Azure.

Приложение, развернутое с помощью службы

Извлечение журналов контейнера

При необходимости устранения неполадок с контейнером или запущенным в нем приложением (или просто чтобы просмотреть выходные данные) начните с просмотра журналов экземпляра контейнера.

Например, выполните команду docker logs, чтобы просмотреть журналы контейнера hungry-kirch в контексте ACI:

docker logs hungry-kirch

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

listening on port 80
::ffff:10.240.255.55 - - [07/Jul/2020:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [07/Jul/2020:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [07/Jul/2020:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"

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

Завершив работу с контейнером, запустите docker rm, чтобы удалить его. Эта команда останавливает и удаляет экземпляр контейнера Azure.

docker rm hungry-kirch

Дальнейшие действия

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

Кроме того, вы можете использовать расширение Docker для Visual Studio Code, чтобы получить доступ к интегрированному интерфейсу для разработки, запуска контейнеров, образов и контекстов, а также управления ими.

Чтобы использовать средства Azure для создания экземпляров контейнеров и управления ими, ознакомьтесь с другими краткими руководствами об использовании Azure CLI, Azure PowerShell, портала Azure и шаблонов Azure Resource Manager.

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