Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 a CLI do Azure para implantar um contêiner isolado do Docker e disponibilizar seu aplicativo com um FQDN (nome de domínio totalmente qualificado). Alguns segundos depois de executar um único comando de implantação, você pode navegar até o aplicativo em execução no contêiner:
Se não tiver uma conta do Azure, crie uma conta gratuita antes de começar.
Pré-requisitos
Utilize o ambiente Bash no Azure Cloud Shell. Para mais informações, veja Get started with Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale o CLI do Azure. Se estiver a usar Windows ou macOS, considere executar o Azure CLI num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se você estiver usando uma instalação local, entre na CLI do Azure usando o comando az login . Para concluir o processo de autenticação, siga os passos exibidos no seu terminal. Para outras opções de entrada, consulte Autenticar no Azure usando a CLI do Azure.
Quando solicitado, instale a extensão do Azure CLI na primeira utilização. Para obter mais informações sobre extensões, consulte Usar e gerenciar extensões com a CLI do Azure.
Execute az version para descobrir a versão e as bibliotecas dependentes que estão instaladas. Para atualizar para a versão mais recente, execute az upgrade.
Este início rápido requer a versão 2.0.55 ou posterior da CLI do Azure. Se estiver usando o Azure Cloud Shell, a versão mais recente já está instalada.
Advertência
Prática recomendada: As credenciais do usuário passadas por meio da interface de linha de comando (CLI) são armazenadas como texto sem formatação no back-end. O armazenamento de credenciais em texto simples é um risco de segurança; A Microsoft aconselha os clientes a armazenar credenciais de usuário em variáveis de ambiente da CLI para garantir que elas sejam criptografadas/transformadas quando armazenadas no back-end.
Criar um grupo de recursos
As instâncias de contêiner do Azure, como todos os recursos do Azure, devem ser implantadas em um grupo de recursos. Os grupos de recursos permitem organizar e gerenciar recursos relacionados do Azure.
Primeiro, crie um grupo de recursos chamado myResourceGroup no local eastus com o comando az group create :
az group create --name myResourceGroup --location eastus
Criar um contêiner
Agora que você tem um grupo de recursos, pode executar um contêiner no Azure. Para criar uma instância de contêiner com a CLI do Azure, forneça um nome de grupo de recursos, nome de instância de contêiner e imagem de contêiner do Docker para o comando az container create . Neste início rápido, você usa a imagem pública mcr.microsoft.com/azuredocs/aci-helloworld . Esta imagem empacota um pequeno aplicativo Web escrito em Node.js que serve uma página HTML estática.
Você pode expor seus contêineres à Internet especificando uma ou mais portas a serem abertas, um rótulo de nome DNS ou ambos. Neste início rápido, você implanta um contêiner com um rótulo de nome DNS para que o aplicativo Web seja acessível publicamente.
Execute um comando semelhante ao seguinte para iniciar uma instância de contêiner. Defina um --dns-name-label valor exclusivo dentro da região do Azure onde você cria a instância. Se receber uma mensagem de erro "Etiqueta de nome DNS não disponível", tente uma etiqueta de nome DNS diferente.
az container create --resource-group myResourceGroup --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label aci-demo --ports 80 --os-type linux --memory 1.5 --cpu 1
Para implantar o contêiner em uma zona de disponibilidade específica, use o --zone argumento e especifique o número da zona lógica:
az container create --resource-group myResourceGroup --name mycontainer --image mcr.microsoft.com/azuredocs/aci-helloworld --dns-name-label aci-demo --ports 80 --os-type linux --memory 1.5 --cpu 1 --zone 1
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.
Dentro de alguns segundos, você deve obter uma resposta da CLI do Azure indicando a implantação concluída. Verifique seu status com o comando az container show :
az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table
Quando você executa o comando, o nome de domínio totalmente qualificado (FQDN) do contêiner e seu estado de provisionamento são exibidos.
FQDN ProvisioningState
--------------------------------- -------------------
aci-demo.eastus.azurecontainer.io Succeeded
Se o contentor ProvisioningState estiver Bem-sucedido, aceda ao seu FQDN no navegador. Se vir uma página web semelhante à seguinte, parabéns! Você implantou com êxito um aplicativo em execução em um contêiner do Docker no Azure.
Se, no início, o aplicativo não for exibido, talvez seja necessário aguardar alguns segundos enquanto o DNS se propaga e, em seguida, tentar atualizar o navegador.
Puxe os logs do contêiner
Quando precisar solucionar problemas de um contêiner ou do aplicativo que ele executa (ou apenas ver sua saída), comece exibindo os logs da instância do contêiner.
Puxe os logs de instância do contêiner com o comando az container logs :
az container logs --resource-group myResourceGroup --name mycontainer
A saída exibe os logs para o contêiner e deve mostrar as solicitações HTTP GET geradas quando você visualizou o aplicativo em seu navegador.
listening on port 80
::ffff:10.240.255.55 - - [21/Mar/2019:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
Anexar fluxos de saída
Além de visualizar os logs, pode anexar os seus fluxos de saída padrão e de erro padrão ao do contentor.
Primeiro, execute o comando az container attach para conectar seu console local aos fluxos de saída do contêiner:
az container attach --resource-group myResourceGroup --name mycontainer
Uma vez anexado, atualize o seu navegador algumas vezes para gerar mais resultados. Quando terminar, desconecte a consola com Control+C. Você deve ver uma saída semelhante ao exemplo a seguir:
Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2019-03-21 17:27:20+00:00) pulling image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:24+00:00) Successfully pulled image "mcr.microsoft.com/azuredocs/aci-helloworld"
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Created container
(count: 1) (last timestamp: 2019-03-21 17:27:27+00:00) Started container
Start streaming logs:
listening on port 80
::ffff:10.240.255.55 - - [21/Mar/2019:17:43:53 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:44:36 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.55 - - [21/Mar/2019:17:47:01 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
::ffff:10.240.255.56 - - [21/Mar/2019:17:47:12 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36"
Limpeza de recursos
Quando terminar de usar o contêiner, remova-o usando o comando az container delete :
az container delete --resource-group myResourceGroup --name mycontainer
Para verificar se o contêiner foi excluído, execute o comando az container list :
az container list --resource-group myResourceGroup --output table
O contêiner mycontainer não deve aparecer na saída do comando. Se você não tiver outros contêineres no grupo de recursos, nenhuma saída será exibida.
Se você tiver terminado com o grupo de recursos myResourceGroup e todos os recursos que ele contém, exclua-o com o comando az group delete :
az group delete --name myResourceGroup
Próximos passos
Neste início rápido, você criou uma instância de contêiner do Azure usando 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 experimentar opções para executar contêineres em um sistema de orquestração no Azure, consulte os inícios rápidos do Serviço Kubernetes do Azure (AKS).