Início Rápido: Implantar uma instância de contêiner no Azure usando um modelo do Resource Manager

Use as Instâncias de Contêiner do Azure para executar contêineres do Docker sem servidor no Azure de maneira simples e rápida. Implante um aplicativo em uma instância de contêiner sob demanda quando você não precisa de uma plataforma de orquestração de contêiner completa como o Serviço de Kubernetes do Azure. Neste guia de início rápido, você usará um modelo do Azure Resource Manager para implantar um contêiner isolado do Docker e disponibilizar o aplicativo Web dele com um endereço IP público.

Um modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo usa a sintaxe declarativa. Descreva a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Se seu ambiente atender aos pré-requisitos e você estiver familiarizado com o uso de modelos ARM, selecione o botão Implantar no Azure. O modelo será aberto no portal do Azure.

Button to deploy the Resource Manager template to Azure.

Pré-requisitos

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Examinar o modelo

O modelo usado neste início rápido é proveniente dos Modelos de Início Rápido do 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')]"
    }
  }
}

O seguinte recurso é definido no modelo:

Mais exemplos de modelo de Instâncias de Contêiner do Azure podem ser encontrados na galeria de modelos de início rápido.

Implantar o modelo

  1. Selecione a imagem a seguir para entrar no Azure e abrir um modelo. O modelo cria um Registro e uma réplica em outra localização.

    Button to deploy the Resource Manager template to Azure.

  2. Selecione ou insira os seguintes valores.

    • Assinatura: selecione uma assinatura do Azure.
    • Grupo de recursos: selecione Criar, insira um nome exclusivo para o grupo de recursos e, em seguida, selecione OK.
    • Local: selecione um local para o grupo de recursos. Exemplo: EUA Central.
    • Nome: aceite o nome gerado para a instância ou insira um nome.
    • Imagem: aceite o nome da imagem padrão. Esta imagem de exemplo do Linux empacota um pequeno aplicativo Web escrito no Node.js que veicula a uma página HTML estática.

    Aceite os valores padrão para as propriedades restantes.

    Examine os termos e condições. Se concordar, selecione Concordo com os termos e condições declarados acima.

    Template properties

  3. Depois que a instância tiver sido criada com êxito, você receberá uma notificação:

    Portal notification

O portal do Azure é usado para implantar o modelo. Além do portal do Azure, você pode usar o Azure PowerShell, a CLI do Azure e a API REST. Para saber mais sobre outros métodos de implantação, confira Implantar modelos.

Examinar os recursos implantados

Use o portal do Azure ou uma ferramenta como a CLI do Azure para examinar as propriedades da instância de contêiner.

  1. No portal, pesquise Instâncias de Contêiner e selecione a instância de contêiner que você criou.

  2. Na página Visão geral, observe o Status da instância do e seu endereço IP.

    Instance overview

  3. Quando seu status for Em execução, navegue até o endereço IP em seu navegador.

    App deployed using Azure Container Instances viewed in browser

Exibir logs do contêiner

Exibir os logs para uma instância de contêiner é útil ao solucionar problemas com o contêiner ou o aplicativo que é executado.

Para ver os logs do contêiner, em Configurações, selecione Contêineres>Logs. Você verá a solicitação HTTP GET gerada quando você exibiu o aplicativo em seu navegador.

Container logs in the Azure portal

Limpar os recursos

Quando você terminar o contêiner, na página Visão geral para a instância de contêiner, selecione Excluir. Quando receber a solicitação, confirme a exclusão.

Próximas etapas

Neste início rápido, você criou uma instância de contêiner do Azure com base em uma imagem da Microsoft pública. Se você quiser criar uma imagem de contêiner e implantá-la usando um Registro de Contêiner do Azure privado, prossiga para o tutorial das Instâncias de Contêiner do Azure.

Para obter um tutorial passo a passo que orienta você durante o processo de criação de um modelo, confira: