Краткое руководство. Развертывание экземпляра контейнера в Azure с помощью Azure PowerShell
Служба "Экземпляры контейнеров Azure" позволяет легко и быстро запускать бессерверные контейнеры Docker в Azure. Развертывайте приложения в экземпляр контейнера по требованию, когда вам не нужна полная платформа оркестрации контейнера, такая как Служба Azure Kubernetes.
В этом кратком руководстве описано, как развернуть изолированный контейнер Windows и сделать его приложение доступным с полным доменным именем (FQDN) и портом. Через несколько секунд после выполнения единой команды развертывания вы можете перейти к приложению, которое выполняется в контейнере.
! [Приложение, развернутное в Экземпляры контейнеров Azure просмотре в браузере][./media/container-instances-quickstart/view-an-application-running-in-an-azure-container-instance.png]
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Дополнительные сведения см. в статье Перенос Azure PowerShell с AzureRM на Az.
Azure Cloud Shell
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Вариант | Пример и ссылка |
---|---|
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически. | |
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell. | |
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure. |
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Чтобы установить и использовать PowerShell локально для работы с этим руководством, вам понадобится модуль Azure PowerShell. Чтобы узнать версию, выполните команду Get-Module -ListAvailable Az
. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. При локальном запуске PowerShell необходимо также запустить Connect-AzAccount
для создания подключения к Azure.
Создание или изменение группы ресурсов
Экземпляры контейнеров Azure, как и все ресурсы Azure, должны быть развернуты в группе ресурсов. Группы ресурсов позволяют организовать соответствующие ресурсы Azure и управлять ими.
Для начала создайте группу ресурсов с именем myResourceGroup в регионе eastus с помощью следующей команды New-AzResourceGroup:
New-AzResourceGroup -Name myResourceGroup -Location EastUS
Создание порта для экземпляра контейнера
Вы можете предоставить контейнеры в Интернете, указав один или несколько портов для открытия, метку имени DNS или и то и другое. В этом кратком руководстве вы развернете контейнер с меткой DNS-имени, чтобы он был общедоступным. В этом руководстве мы делаем оба, но сначала необходимо создать объект порта в PowerShell для использования экземпляра контейнера.
$port = New-AzContainerInstancePortObject -Port 80 -Protocol TCP
Создание группы контейнеров
Теперь, когда у вас есть группа ресурсов и порт, можно запустить контейнер, предоставляемый в Интернете в Azure. Чтобы создать экземпляр контейнера с помощью Azure PowerShell, сначала необходимо создать его ContainerInstanceObject
, указав имя, образ и порт для контейнера. В этом кратком руководстве используется общедоступный образ mcr.microsoft.com/azuredocs/aci-helloworld
.
New-AzContainerInstanceObject -Name myContainer -Image mcr.microsoft.com/azuredocs/aci-helloworld -Port @($port)
Затем используйте командлет New-AzContainerGroup . Необходимо указать имя группы контейнеров, имя группы ресурсов, расположение группы контейнеров, созданного экземпляра контейнера, типа операционной системы и уникальной метки DNS-имени IP-адреса.
Выполните следующую команду для запуска экземпляра контейнера. Задайте значение -IPAddressDnsNameLabel
, которое является уникальным в пределах региона Azure, в котором создается экземпляр. Если появится сообщение об ошибке "Метка имени DNS недоступна", попробуйте другую метку имени DNS.
$containerGroup = New-AzContainerInstanceObject -ResourceGroupName myResourceGroup -Name myContainerGroup -Location EastUS -Container myContainer -OsType Windows -IPAddressDnsNameLabel aci-quickstart-win -IpAddressType Public -IPAddressPort @($port)
В течение нескольких секунд вы должны получить ответ от Azure. Состояние ProvisioningState
контейнера изначально Создается, но через минуту или две оно должно измениться на Успешно. Вы можете проверить состояние развертывания с помощью командлета Get-AzContainerGroup:
Get-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
Вы также можете распечатать объект $containerGroup и отфильтровать таблицу для состояния подготовки контейнера, полное доменное имя (FQDN) и IP-адрес.
$containerGroup | Format-Table InstanceViewState, IPAddressFqdn, IPAddressIP
Состояние подготовки контейнера, полное доменное имя и IP-адрес контейнера отображаются в выходных данных командлета:
PS Azure:\> Get-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
ResourceGroupName : myResourceGroup
Id : /subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerInstance/containerGroups/myContainerGroup
Name : myContainerGroup
Type : Microsoft.ContainerInstance/containerGroups
Location : eastus
Tags :
ProvisioningState : Creating
Containers : {myContainer}
ImageRegistryCredentials :
RestartPolicy : Always
IpAddress : 52.226.19.87
DnsNameLabel : aci-demo-win
Fqdn : aci-demo-win.eastus.azurecontainer.io
Ports : {80}
OsType : Windows
Volumes :
State : Pending
Events : {}
Когда ProvisioningState
контейнера перейдет в состояние успешного запуска, перейдите к нему в браузере, указав полное доменное имя. Если появится примерно такая веб-страница, поздравляем! Вы успешно развернули приложение, работающее в контейнере Docker в Azure.
! [Просмотр приложения, развернутого для Экземпляры контейнеров Azure в браузере][./media/container-instances-quickstart/view-an-application-running-in-an-azure-container-instance.png]
Очистка ресурсов
По завершении работы с контейнером его можно удалить с помощью командлета Remove-AzContainerGroup:
Remove-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
Следующие шаги
С помощью этого краткого руководства вы создали экземпляр контейнера Azure из образа, размещенного в общедоступном реестре Docker Hub. Если вы хотите создать образ контейнера и развернуть его через частный реестр контейнеров Azure, перейдите к руководству по использованию службы "Экземпляры контейнеров Azure".