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. Essa funcionalidade é habilitada pela integração entre o Docker e o Azure. Alguns segundos após a execução de um comando docker run, você poderá procurar o aplicativo em execução no contêiner:

Aplicativos implantados por meio das Instâncias de Contêiner do Azure exibidos no navegador

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

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 será criado com um nome gerado pelo sistema. 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ê implantou com êxito um aplicativo em execução em um contêiner do Docker no Azure.

Aplicativos implantados por meio das Instâncias de Contêiner do Azure exibidos no navegador

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.