Краткое руководство. Развертывание экземпляра контейнера в Azure с помощью шаблона ARM
Служба "Экземпляры контейнеров Azure" позволяет легко и быстро запускать бессерверные контейнеры Docker в Azure. Развертывайте приложения в экземпляр контейнера по требованию, когда вам не нужна полная платформа оркестрации контейнера, такая как Служба Azure Kubernetes. В этом кратком руководстве показано, как развернуть изолированный контейнер Docker с помощью шаблона Azure Resource Manager (шаблона ARM) и сделать его веб-приложение доступным по общедоступному IP-адресу.
Шаблон Azure Resource Manager — это файл нотации объектов JavaScript (JSON), который определяет инфраструктуру и конфигурацию проекта. В шаблоне используется декларативный синтаксис. Вы описываете предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.
Если среда соответствует предварительным требованиям и вы знакомы с использованием шаблонов ARM, нажмите кнопку Развертывание в Azure. На портале Azure откроется шаблон.
Необходимые компоненты
Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.
Изучение шаблона
Шаблон, используемый в этом кратком руководстве, взят из шаблонов быстрого запуска Azure.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.26.54.24096",
"templateHash": "15999594271314721416"
}
},
"parameters": {
"name": {
"type": "string",
"defaultValue": "acilinuxpublicipcontainergroup",
"metadata": {
"description": "Name for the container group"
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "Location for all resources."
}
},
"image": {
"type": "string",
"defaultValue": "mcr.microsoft.com/azuredocs/aci-helloworld",
"metadata": {
"description": "Container image to deploy. Should be of the form repoName/imagename:tag for images stored in public Docker Hub, or a fully qualified URI for other registries. Images from private registries require additional registry credentials."
}
},
"port": {
"type": "int",
"defaultValue": 80,
"metadata": {
"description": "Port to open on the container and the public IP address."
}
},
"cpuCores": {
"type": "int",
"defaultValue": 1,
"metadata": {
"description": "The number of CPU cores to allocate to the container."
}
},
"memoryInGb": {
"type": "int",
"defaultValue": 2,
"metadata": {
"description": "The amount of memory to allocate to the container in gigabytes."
}
},
"restartPolicy": {
"type": "string",
"defaultValue": "Always",
"allowedValues": [
"Always",
"Never",
"OnFailure"
],
"metadata": {
"description": "The behavior of Azure runtime if container has stopped."
}
}
},
"resources": [
{
"type": "Microsoft.ContainerInstance/containerGroups",
"apiVersion": "2023-05-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"properties": {
"containers": [
{
"name": "[parameters('name')]",
"properties": {
"image": "[parameters('image')]",
"ports": [
{
"port": "[parameters('port')]",
"protocol": "TCP"
}
],
"resources": {
"requests": {
"cpu": "[parameters('cpuCores')]",
"memoryInGB": "[parameters('memoryInGb')]"
}
}
}
}
],
"osType": "Linux",
"restartPolicy": "[parameters('restartPolicy')]",
"ipAddress": {
"type": "Public",
"ports": [
{
"port": "[parameters('port')]",
"protocol": "TCP"
}
]
}
}
}
],
"outputs": {
"name": {
"type": "string",
"value": "[parameters('name')]"
},
"resourceGroupName": {
"type": "string",
"value": "[resourceGroup().name]"
},
"resourceId": {
"type": "string",
"value": "[resourceId('Microsoft.ContainerInstance/containerGroups', parameters('name'))]"
},
"containerIPv4Address": {
"type": "string",
"value": "[reference(resourceId('Microsoft.ContainerInstance/containerGroups', parameters('name')), '2023-05-01').ipAddress.ip]"
},
"location": {
"type": "string",
"value": "[parameters('location')]"
}
}
}
В этом шаблоне определяется следующий ресурс.
- Microsoft.ContainerInstance/containerGroups — создание группы контейнеров Azure. Этот шаблон определяет группу, состоящую из одного экземпляра контейнера.
Другие примеры шаблонов службы "Экземпляры контейнеров Azure" можно найти в коллекции шаблонов быстрого запуска.
Развертывание шаблона
Выберите следующее изображение, чтобы войти на портал Azure и открыть шаблон. Шаблон создает реестр контейнеров и реплику в другом расположении.
Введите или выберите следующие значения.
- Подписка. Выберите нужную подписку Azure.
- Группа ресурсов. Щелкните Создать, введите уникальное имя новой группы ресурсов и щелкните ОК.
- Расположение. Выберите расположение группы ресурсов. Пример: центральная часть США.
- Имя. Используйте имя, созданное для экземпляра, или введите другое имя.
- Образ. Используйте имя образа по умолчанию. Этот пример образа Linux содержит небольшое веб-приложение Node.js, которое обслуживает статические HTML-страницы.
Примите значения по умолчанию для остальных свойств.
Ознакомьтесь с условиями использования. Если вы согласны с ними, щелкните Я принимаю указанные выше условия.
После успешного создания экземпляра вы получите уведомление:
Для развертывания шаблона используется портал Azure. Кроме портала Azure, вы можете использовать Azure PowerShell, Azure CLI и REST API. Дополнительные сведения о других методах развертывания см. в статье о развертывании с использованием шаблонов.
Просмотр развернутых ресурсов
Для просмотра свойств экземпляра контейнера используйте портал Azure или такое средство, как Azure CLI.
На портале найдите службу "Экземпляры контейнеров" и выберите созданный экземпляр контейнера.
На странице Обзор обратите внимание на состояние экземпляра и его IP-адрес.
Если параметр состояния имеет значение Выполняется, перейдите в браузере по IP-адресу.
Просмотр журналов контейнеров
Просмотр журналов для экземпляра контейнера помогает устранять неполадки с этим контейнером или запущенными в нем приложениями.
Чтобы просмотреть журналы контейнера, в разделе Параметры щелкните Контейнеры>Журналы. Вы увидите запрос HTTP GET, созданный при просмотре приложения в браузере.
Очистка ресурсов
Завершив работу с контейнером, на странице Обзор экземпляра контейнера щелкните Удалить. При появлении запроса подтвердите удаление.
Следующие шаги
В этом кратком руководстве вы создали экземпляр контейнера Azure из общедоступного образа Microsoft. Если вы хотите создать образ контейнера и развернуть его через частный реестр контейнеров Azure, перейдите к руководству по использованию службы "Экземпляры контейнеров Azure".
Пошаговые инструкции по созданию шаблона см. в следующей статье: