Краткое руководство. Развертывание экземпляра контейнера в Azure с помощью Интерфейса командной строки Docker
Служба "Экземпляры контейнеров 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 --tenant-id "[tenant ID]"
Чтобы найти идентификатор клиента, перейдите к свойствам идентификатора Microsoft Entra.
При появлении запроса введите или выберите свои учетные данные 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, перейдите к следующему учебнику.