Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Используйте экземпляры контейнеров Azure для запуска бессерверных контейнеров Docker в Azure с простотой и скоростью. Развертывайте приложение в экземпляре контейнера по требованию, когда вам не нужна полнофункциональная платформа оркестрации контейнеров, такая как Azure Kubernetes Service.
В этом кратком руководстве описано, как с помощью Azure PowerShell развернуть изолированный контейнер Windows и обеспечить доступность его приложения с полным доменным именем (FQDN) и портом. Через несколько секунд после выполнения единой команды развертывания вы можете перейти к приложению, которое выполняется в контейнере.
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Примечание.
Мы рекомендуем использовать модуль Azure Az PowerShell для взаимодействия с Azure. Сведения о начале работы см. в статье "Установка Azure PowerShell". Чтобы узнать, как перейти на модуль Az 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 образ.
$containerInstance = New-AzContainerInstanceObject -Name myContainer -Image mcr.microsoft.com/azuredocs/aci-helloworld -Port @($port)
Затем используйте командлет New-AzContainerGroup . Необходимо указать имя группы контейнеров, имя группы ресурсов, расположение группы контейнеров, экземпляр контейнера, который был создан, тип операционной системы и уникальную метку DNS-имени IP-адреса.
Выполните следующую команду для запуска экземпляра контейнера. Задайте значение -IPAddressDnsNameLabel, которое является уникальным в пределах региона Azure, в котором создается экземпляр. Если появится сообщение об ошибке "Метка имени DNS недоступна", попробуйте другую метку имени DNS.
$containerGroup = New-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup -Location EastUS -Container $containerInstance -OsType Windows -IPAddressDnsNameLabel aci-quickstart-win -IpAddressType Public -IPAddressPorts @($port)
Чтобы сделать группу контейнеров зональной, используйте -Zone аргумент и укажите номер логической зоны:
$containerGroup = New-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup -Location EastUS -Container myContainer -OsType Windows -IPAddressDnsNameLabel aci-quickstart-win -IpAddressType Public -IPAddressPorts @($port) -Zone 1
Это важно
Зональные группы контейнеров доступны только в регионах, поддерживающих зоны доступности. Чтобы узнать, поддерживает ли ваш регион зоны доступности, см. список регионов Azure.
Через несколько секунд вы получите ответ от Azure. Контейнер ProvisioningState изначально создается, но должен перейти в состояние Создан в течение минуты или двух. Проверьте состояние развертывания с помощью командлета Get-AzContainerGroup :
Get-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
Вы также можете вывести объект $containerGroup и отфильтровать таблицу по состоянию подготовки контейнера, полному доменному имени (Fully Qualified Domain Name, 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.
Очистка ресурсов
После завершения работы с контейнером удалите его с помощью командлета Remove-AzContainerGroup :
Remove-AzContainerGroup -ResourceGroupName myResourceGroup -Name myContainerGroup
Дальнейшие действия
В этом кратком руководстве вы создали экземпляр контейнера Azure из образа в общедоступном реестре Docker Hub. Если вы хотите создать образ контейнера и развернуть его из частного реестра контейнеров Azure, ознакомьтесь с руководством по Azure Container Instances.