Partilhar via


Guia de início rápido: implantar uma instância de contêiner no Azure usando um modelo ARM

Use as Instâncias de Contêiner do Azure para executar contêineres do Docker sem servidor no Azure com simplicidade e velocidade. Implante um aplicativo em uma instância de contêiner sob demanda quando não precisar de uma plataforma de orquestração de contêiner completa, como o Serviço Kubernetes do Azure. Neste início rápido, você usa um modelo do Azure Resource Manager (modelo ARM) para implantar um contêiner isolado do Docker e disponibilizar seu aplicativo Web 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 sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Se o seu ambiente cumpre os pré-requisitos e se está familiarizado com a utilização de modelos ARM, selecione o botão Implementar no Azure. O modelo é aberto no portal do Azure.

Botão para implantar o modelo do Gerenciador de Recursos no Azure.

Pré-requisitos

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

Rever o modelo

O modelo utilizado neste início rápido pertence aos Modelos de Início Rápido do Azure.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "languageVersion": "2.0",
  "contentVersion": "1.0.0.0",
  "metadata": {
    "_generator": {
      "name": "bicep",
      "version": "0.37.4.10188",
      "templateHash": "7099805986652764357"
    }
  },
  "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."
      }
    },
    "zone": {
      "type": "string",
      "nullable": true,
      "metadata": {
        "description": "The availability zone to deploy the container group into. If not specified, the container group is nonzonal and might be deployed into any zone."
      }
    }
  },
  "resources": {
    "containerGroup": {
      "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"
            }
          ]
        }
      },
      "zones": "[if(not(equals(parameters('zone'), null())), createArray(parameters('zone')), null())]"
    }
  },
  "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('containerGroup').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.

Para implantar o grupo de contêineres em uma zona de disponibilidade específica, defina o zone valor do parâmetro para a zona de disponibilidade lógica na qual você deseja implantar.

Importante

As implantações zonais só estão disponíveis em regiões que oferecem suporte a zonas de disponibilidade. Para ver se a sua região suporta zonas de disponibilidade, consulte Lista de Regiões do Azure.

Implementar o modelo

  1. Selecione a imagem seguinte para iniciar sessão no Azure e abrir um modelo. O modelo cria um registro e uma réplica em outro local.

    Botão para implantar o modelo do Gerenciador de Recursos no Azure.

  2. Selecione ou introduza os seguintes valores.

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

    Aceite os valores padrão para as propriedades restantes.

    Reveja os termos e condições. Se concordar, selecione Concordo com os termos e condições descritos acima.

    Propriedades do modelo

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

    Notificação do portal

O portal do Azure é utilizado para implementar o modelo. Além do portal do Azure, você pode usar o Azure PowerShell, a CLI do Azure e a API REST. Para aprender outros métodos de implantação, consulte Implantar modelos.

Analisar os recursos implementados

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

  1. No portal, procure por 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 e seu endereço IP.

    Visão geral da instância

  3. Quando o estado estiver em execução, navegue até ao endereço IP no seu navegador.

    Aplicativo implantado usando instâncias de contêiner do Azure exibidas no navegador

Exibir logs de contêiner

A visualização dos logs de uma instância de contêiner é útil ao solucionar problemas com seu contêiner ou o aplicativo que ele executa.

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

Logs de contêiner no portal do Azure

Limpeza de recursos

Quando terminar de usar o contêiner, na página Visão geral da instância do contêiner, selecione Excluir. Quando lhe for perguntado, confirme a eliminação.

Próximos passos

Neste início rápido, você criou uma instância de contêiner do Azure a partir de uma imagem pública da Microsoft. Se você quiser criar uma imagem de contêiner e implantá-la a partir de um registro de contêiner privado do Azure, continue para o tutorial Instâncias de contêiner do Azure.

Para obter um tutorial passo a passo que o orienta pelo processo de criação de um modelo, consulte: