Поделиться через


Краткое руководство: Разверните экземпляр контейнера в Azure посредством Azure CLI

Служба "Экземпляры контейнеров Azure" позволяет легко и быстро запускать бессерверные контейнеры Docker в Azure. Развертывайте приложение в экземпляре контейнера по требованию, когда вам не нужна полноценная платформа оркестрации контейнеров, такая как Azure Kubernetes Service.

Пользуясь этим кратким руководством, вы развернете изолированный контейнер Docker и сделаете его приложение доступным по полному доменному имени (FQDN) с помощью Azure CLI. Через несколько секунд после выполнения единой команды развертывания вы можете перейти к приложению, которое выполняется в контейнере.

Откройте в браузере приложение, развернутое в Azure Container Instances

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

Предпосылки

  • Используйте среду Bash в Azure Cloud Shell. Для получения дополнительной информации см. Краткое руководство по началу работы с Bash в Azure Cloud Shell.

  • Если вы предпочитаете запускать справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, попробуйте запустить Azure CLI в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.

    • Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы завершить процесс проверки подлинности, выполните действия, отображаемые в терминале. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.

    • Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.

    • Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.

  • Для работы с этим кратким руководством по быстрому запуску требуется Azure CLI версии 2.0.55 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.

    Предупреждение

    Рекомендуется: учетные данные пользователя, передаваемые через интерфейс командной строки (CLI), хранятся в виде обычного текста в серверной части. Хранение учетных данных в виде обычного текста является угрозой безопасности; Корпорация Майкрософт рекомендует клиентам хранить учетные данные пользователей в переменных среды CLI, чтобы убедиться, что они шифруются или преобразуются при хранении в серверной части.

Создайте группу ресурсов

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

Для начала создайте группу ресурсов с именем myResourceGroup в регионе eastus с помощью следующей команды az group create:

az group create --name myResourceGroup --location eastus

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

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

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

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

az container create --resource-group myResourceGroup --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label aci-demo --ports 80

Через несколько секунд вы получите ответ из Azure CLI, указывающий на завершение развертывания. Проверьте состояние с помощью команды az container show:

az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table

При выполнении команды отображается полное доменное имя (FQDN) и состояние подготовки контейнера.

FQDN                               ProvisioningState
---------------------------------  -------------------
aci-demo.eastus.azurecontainer.io  Succeeded

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

Просмотрите приложение, развернутое в Azure Container Instances, в браузере

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

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

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

Извлеките журналы экземпляра контейнера с помощью команды az container logs.

az container logs --resource-group myResourceGroup --name mycontainer

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

listening on port 80
::ffff:10.240.255.55 - - [21/Mar/2019: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 - - [21/Mar/2019: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 - - [21/Mar/2019: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"

Подключите потоки вывода

Кроме просмотра журналов, можно присоединить свои локальные стандартные потоки вывода и потоки ошибок к соответствующим потокам контейнера.

Сначала выполните команду az container attach, чтобы присоединить локальную консоль к потокам вывода контейнера:

az container attach --resource-group myResourceGroup --name mycontainer

После присоединения обновите браузер несколько раз, чтобы получить больше данных. Когда все будет готово, отсоедините консоль с помощью Control+C. Вы должны увидеть выходные данные, аналогичные следующему примеру:

Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 17:27:20+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:24+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Created container
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Started container

Start streaming logs:
listening on port 80

::ffff:10.240.255.55 - - [21/Mar/2019: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 - - [21/Mar/2019: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 - - [21/Mar/2019: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 - - [21/Mar/2019:17:47:01 +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.56 - - [21/Mar/2019:17:47:12 +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"

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

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

az container delete --resource-group myResourceGroup --name mycontainer

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

az container list --resource-group myResourceGroup --output table

Контейнер mycontainer не должен отображаться в выходных данных команды. Если у вас нет других контейнеров в группе ресурсов, выходные данные будут отсутствовать.

После завершения работы с группой ресурсов myResourceGroup и всеми ресурсами, которые она содержит, удалите ее с помощью команды az group delete:

az group delete --name myResourceGroup

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

В этом кратком руководстве вы создали экземпляр контейнера Azure с помощью общедоступного образа Microsoft. Если вы хотите создать образ контейнера и развернуть его из частного реестра контейнеров Azure, ознакомьтесь с руководством по Azure Container Instances.

Сведения о том, как попробовать возможности запуска контейнеров в системе оркестрации на платформе Azure, см. в кратких руководствах по Службе Azure Kubernetes (AKS).