Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Служба "Экземпляры контейнеров Azure" позволяет легко и быстро запускать бессерверные контейнеры Docker в Azure. Развертывайте приложение в экземпляре контейнера по требованию, когда вам не нужна полноценная платформа оркестрации контейнеров, такая как Azure Kubernetes Service.
Пользуясь этим кратким руководством, вы развернете изолированный контейнер Docker и сделаете его приложение доступным по полному доменному имени (FQDN) с помощью Azure CLI. Через несколько секунд после выполнения единой команды развертывания вы можете перейти к приложению, которое выполняется в контейнере.
Если у вас еще нет подписки 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.
Если сначала приложение не отображается, может потребоваться подождать несколько секунд, пока 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).