Guia de início rápido: implantar uma instância de contêiner no Azure usando a CLI do Azure
Utilize o Azure Container Instances para executar contentores de Docker sem servidor no Azure com simplicidade e celeridade. Implemente uma aplicação numa instância de contentor a pedido quando não precisar de uma plataforma completa de orquestração de contentores, como o Azure Kubernetes Service.
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 subscrição do Azure, crie uma conta gratuita do Azure antes de começar.
Pré-requisitos
Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.
Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.
Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.
Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando 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.
Aviso
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
O Azure Container Instances, como todos os recursos do Azure, tem de ser implementados num grupo de recursos. Os grupos de recursos permitem organizar e gerir recursos relacionados do Azure.
Primeiro, crie um grupo de recursos com o nome myResourceGroup na localização eualeste através do comando seguinte az group create:
az group create --name myResourceGroup --location eastus
Criar um contentor
Agora que tem um grupo de recursos, pode executar um contentor no Azure. Para criar uma instância de contentor com a CLI do Azure, forneça um nome de um grupo de recursos, o nome da instância de contentor e a imagem do contentor de Docker para o cmdlet 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.
Pode expor os seus contentores à Internet, especificando uma ou mais portas a abrir, uma etiqueta 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 "A etiqueta de nome DNS não está disponível ", experimente 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
Dentro de alguns segundos, você deve obter uma resposta da CLI do Azure indicando a implantação concluída. Verifique o respetivo estado com o comando az container show:
az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table
Ao executar o comando, são apresentados o nome de domínio completamente qualificado (FQDN) e o estado de aprovisionamento do contentor.
FQDN ProvisioningState
--------------------------------- -------------------
aci-demo.eastus.azurecontainer.io Succeeded
Se o contêiner ProvisioningState
for Bem-sucedido, vá para seu FQDN no navegador. Se lhe for apresentada 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, inicialmente, a aplicação não for apresentada, poderá ter de aguardar alguns segundos enquanto o DNS propaga e, em seguida, tente atualizar o browser.
Extrair os registos de contentor
Quando precisar de resolver problemas de um contentor ou da aplicação nele executada (ou apenas ver o respetivo resultado), comece por visualizar os registos da instância de contentor.
Extraia os registos da instância de contentor com o comando az container logs:
az container logs --resource-group myResourceGroup --name mycontainer
A saída apresenta os registos para o contentor e deve mostrar os pedidos GET de HTTP gerados quando visualizou a aplicação no seu browser.
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 registos, pode anexar o padrão local e os fluxos de erro padrão para o 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 conectado, atualize seu navegador algumas vezes para gerar mais saída. Quando tiver terminado, desligue a consola com Control+C
. Deverá ver um resultado semelhante ao exemplo seguinte:
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"
Clean up resources (Limpar recursos)
Quando já não precisar do contentor, remova-o com 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. Não se tiver outros contentores no grupo de recursos, não é apresentada nenhuma saída.
Se tiver concluído a utilização do grupo de recursos myResourceGroup e de todos os recursos contidos no mesmo, elimine-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 quiser criar uma imagem de contentor e implementá-la partir de um registo de contentor privado do Azure, prossiga para o tutorial do Azure Container Instances.
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).