Início Rápido: Implantar uma instância de contêiner no Azure usando a CLI do Docker
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 em uma instância de contêiner sob demanda quando desenvolver aplicativos nativos de nuvem e desejar alternar diretamente do desenvolvimento local para a implantação na nuvem.
Neste guia de início rápido, você usará os comandos nativos da CLI do Docker para implantar um contêiner do Docker e disponibilizar seu aplicativo nas Instâncias de Contêiner do Azure. A integração entre o Docker e o Azure habilita essa funcionalidade. Alguns segundos após a execução de um comando docker run
, você poderá procurar o aplicativo em execução no contêiner:
Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.
Para este guia de início rápido, você precisará do Docker Desktop versão 2.3.0.5 ou posterior, disponível para o Windows ou o macOS. Ou instale a CLI de Integração do Docker ACI para Linux.
Importante
Nem todos os recursos das Instâncias de Contêiner do Azure são compatíveis. Forneça comentários sobre a integração Docker-Azure criando um problema no repositório GitHub aci-integration-beta.
Criar um contexto do Azure
Para usar comandos do Docker para executar contêineres nas Instâncias de Contêiner do Azure, primeiro faça logon no Azure:
docker login azure --tenant-id "[tenant ID]"
Para encontrar sua ID de locatário, navegue até as propriedades da ID do Microsoft Entra.
Quando precisar, insira ou selecione suas credenciais do Azure.
Crie um contexto de ACI executando docker context create aci
. Esse contexto associa o Docker à assinatura e ao grupo de recursos do Azure para que você possa criar e gerenciar instâncias de contêiner. Por exemplo, para criar um contexto chamado myacicontext:
docker context create aci myacicontext
Quando precisar, selecione sua ID da assinatura do Azure e um grupo de recursos existente ou crie um. Se você escolher um novo grupo de recursos, ele terá um nome gerado pelo sistema na criação. Instâncias de Contêiner do Azure, assim como todos os recursos do Azure, precisam ser implantadas em um grupo de recursos. Os grupos de recursos facilitam organizar e gerenciar os recursos relacionados ao Azure.
Execute docker context ls
para confirmar se você adicionou o contexto da ACI aos contextos do Docker:
docker context ls
Criar um contêiner
Depois de criar um contexto do Docker, crie um contêiner no Azure. 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 no Node.js que veicula a uma página HTML estática.
Primeiro, altere para o contexto da ACI. Todos os próximos comandos do Docker serão executados nesse contexto.
docker context use myacicontext
Execute o seguinte comando docker run
para criar a instância de contêiner do Azure com a porta 80 exposta à Internet:
docker run -p 80:80 mcr.microsoft.com/azuredocs/aci-helloworld
Saída de exemplo de uma implantação bem-sucedida:
[+] Running 2/2
⠿ hungry-kirch Created 5.1s
⠿ single--container--aci Done 11.3s
hungry-kirch
Execute docker ps
para obter detalhes sobre o contêiner em execução, incluindo o endereço IP público:
docker ps
A saída de exemplo mostra um endereço IP público, neste caso, 52.230.225.232:
CONTAINER ID IMAGE COMMAND STATUS PORTS
hungry-kirch mcr.microsoft.com/azuredocs/aci-helloworld Running 52.230.225.232:80->80/tcp
Agora, acesse o endereço IP no navegador. Se você encontrar uma página da Web semelhante à seguinte, parabéns! Você conseguiu implantar com sucesso um aplicativo que está em execução em um contêiner do Docker no Azure.
Acessar os logs de contêiner
Quando você precisar solucionar problemas de um contêiner ou do aplicativo que ele executa (ou apenas ver a saída dele), comece exibindo os logs da instância de contêiner.
Por exemplo, execute o comando docker logs
para ver os logs do contêiner hungry-kirch no contexto da ACI:
docker logs hungry-kirch
A saída exibe os logs para o contêiner e deve mostrar as solicitações HTTP GET geradas quando o aplicativo é exibido no navegador.
listening on port 80
::ffff:10.240.255.55 - - [07/Jul/2020: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 - - [07/Jul/2020: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 - - [07/Jul/2020: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"
Limpar os recursos
Quando terminar de usar o contêiner, execute docker rm
para removê-lo. Esse comando interrompe e exclui a instância de contêiner do Azure.
docker rm hungry-kirch
Próximas etapas
Neste guia de início rápido, você criou uma instância de contêiner do Azure com base em uma imagem pública usando a integração entre o Docker e o Azure. Saiba mais sobre os cenários de integração na documentação do Docker.
Use também a extensão do Docker para Visual Studio Code para uma experiência integrada de desenvolvimento, execução e gerenciamento de contêineres, imagens e contextos.
Para usar as ferramentas do Azure para criar e gerenciar Instâncias de Contêiner, confira outros guias de início rápido que usam a CLI do Azure, o Azure PowerShell, o portal do Azure e o modelo do Azure Resource Manager.
Se você quer usar o Docker Compose para definir e executar um aplicativo de vários contêineres localmente e depois mudar para as Instâncias de Contêiner do Azure, prossiga para o tutorial.