Para este Projeto ATA, você terá um vislumbre de como o Docker funciona no Azure. Neste tutorial do Azure Docker, você aprenderá sobre o serviço Azure Container Instance (ACI) da Microsoft.
O Azure Container Instance é um cluster Kubernetes hospedado via hospedagem Azure Docker. Ele permite que você implante qualquer imagem Docker (Windows e Linux) e a execute como um contêiner. Cada contêiner Docker do Azure funciona de forma independente, utilizando sua própria CPU e memória alocadas.
Neste projeto, você aprenderá como implantar e executar sua primeira Instância de Contêiner Azure, com base em uma imagem de contêiner ASP.NET de exemplo da Microsoft na nuvem pública do Azure.
Ao final deste projeto, você terá um site ASP.NET em execução em um contêiner Docker hospedado pelo serviço Azure Container Instance.
Requisitos de Ambiente e Conhecimento
Para obter o máximo deste tutorial do Azure Docker, você deve ter o seguinte:
- A local Windows 10 client with Docker Desktop installed.
- A Microsoft Azure account
- Acesso a uma conta do Azure com permissões para implantar um contêiner no Azure Container Registry
- O Windows Azure CLI instalado. Você estará aprendendo a partir da linha de comando.
- A beginner understanding of containers and Docker.
- A registered Docker ID.
Se você não gostar do exemplo escolhido neste tutorial Azure Docker, você sempre pode usar outra imagem de contêiner no Docker Hub.
Sem mais delongas, vamos começar a construir este Projeto!
Executando um Contêiner Docker
Para evitar frustrações mais tarde, quando algo não estiver funcionando, sempre valide primeiro se o Docker Engine está em execução. Para fazer isso, abra um prompt de comando ou uma sessão do PowerShell e execute docker info
.
Você pode ver abaixo o tipo de saída que você deveria receber.

Para validar, inicie um contêiner Docker, execute docker run hello-world
. Nos bastidores, o comando docker
realiza alguns passos:
- Procura por um contêiner chamado hello-word localmente no seu computador com Windows 10.
- Quando não encontrado, ele então procura no repositório público Docker Hub pela versão mais recente de um contêiner com o nome hello-world.
- Quando o contêiner é encontrado, ele é então baixado do repositório Docker Hub.
- Depois de baixado, o contêiner é iniciado e executa as instruções de inicialização fornecidas dentro da imagem que o contêiner está usando.
Você pode ver um exemplo de saída abaixo.

Iniciando um Contêiner ASP.NET de Exemplo
Agora que você sabe como baixar um contêiner Docker e executá-lo, baixe e execute o contêiner com o qual você estará trabalhando neste Projeto. Este contêiner Docker é uma imagem de aplicativo web ASP.Net Core.
Para baixar a imagem deste tutorial Azure Docker, execute o seguinte comando:
Este comando faz o seguinte:
- Como a imagem Docker não está disponível localmente, o Docker faz o download de um contêiner chamado aspnetapp de outro registro de contêiner público hospedado pela Microsoft localizado em mcr.microsoft.com no diretório dotnet/core/samples. O registro de contêiner mcr.microsoft.com é semelhante ao Docker Hub público, mas é mantido pela Microsoft e hospeda apenas imagens de contêiner da Microsoft.
- Executa o contêiner no seu computador local.
- (-p 8000:80) – Mapeia a porta TCP de escuta 80 no contêiner para a porta TCP 8000. Isso permite que você acesse o aplicativo da web na porta 8000 localmente.
- (-it) – O contêiner será iniciado interativamente, ou seja, você será imediatamente levado para o console quando ele iniciar.
- (
—rm
) – Quando o contêiner for interrompido, ele será removido.
Você pode ver abaixo a saída que pode esperar.

6. No seu navegador, conecte-se a este aplicativo de contêiner em execução navegando até http://localhost:8000. Você deve ver o aplicativo da web de exemplo ASP.Net

Criando uma Instância do Registro de Contêiner Azure (ACR)
Assim que você tiver o contêiner ASP.NET baixado para o seu computador local, é hora de migrá-lo para hospedagem Docker no Azure com ACI e executar este contêiner no Azure. Para fazer isso, vamos enviar o contêiner de demonstração para o Registro de Contêiner do Azure (ACR). O ACR é um serviço que permite implantar e executar contêineres Docker diretamente dentro do Azure.
- Acesse o Portal do Azure.
- Clique no ícone do terminal no topo para iniciar o Azure Cloud Shell.

3. Certifique-se de escolher o shell Bash conforme mostrado abaixo.

4. Crie um grupo de recursos do Azure para colocar uma instância do ACR usando o comando az group create
abaixo.

5. Agora crie o ACR dentro do grupo de recursos usando o comando az acr create
. Abaixo você pode ver um exemplo de criação de um ACR com uma SKU Básica usando o parâmetro admin-enabled
definido como true
. Isso é definido como true
porque permite que você execute o gerenciamento de recursos posteriormente.

–admin-enabled true
Depois de concluído, você agora deve ter uma instância do ACR em execução dentro do seu grupo de recursos. Hospedagem Docker no Azure para o resgate!
Conectando-se à Instância do ACR Localmente
- Agora você precisa sair do Azure Cloud Shell e ir para o seu computador Windows local para concluir a configuração.
- No seu computador local, inicie o PowerShell ou um prompt de comando com direitos administrativos. Estarei utilizando o PowerShell.
- Autentique-se no Azure com o Azure CLI executando
az login
e siga as instruções para fornecer suas credenciais.

Após autenticar com sucesso, você deverá ver alguma saída JSON indicando o usuário com o qual acabou de autenticar.

4. Em seguida, autentique-se na instância do ACR que você acabou de criar no Azure Cloud Shell usando o comando az acr login
com o comando abaixo. Abaixo, você pode ver que estou me conectando a uma instância do ACR chamada nopacr1, no grupo de recursos do Azure NOPRG.
Atualizando a Tag da Imagem Docker
- Agora você está pronto para enviar sua imagem Docker local para sua instância ACR no Azure Docker hosting ou ACI. Mas primeiro, você deve atender a uma dependência do ACR. Todas as imagens Docker enviadas para a instância do ACR devem ter o nome da instância do ACR no nome da imagem.

Encontre o número da ID ou o nome da imagem Docker usando o comando docker images
.

2. Atualize a tag da imagem Docker para a imagem Docker executando o comando docker tag
conforme mostrado abaixo. Se estiver seguindo a convenção de nomenclatura, use o nome do ACR NOPACR1 e defina a tag como nopacr1.azurecr.io. Para a imagem em si, use o nome dotnetsample.

3. Verifique se a tag foi aplicada usando o comando docker images
novamente. Agora você deve ver que a tag foi atualizada.
- Upload da Imagem Docker para a Instância do ACR e Verificação

Agora, faça o upload da imagem local para a instância ACR usando o comando docker push
, conforme mostrado abaixo, fornecendo o nome DNS onde a instância ACR está localizada.

2. Uma vez carregada, verifique se o push para a instância ACR foi bem-sucedido usando o Portal do Azure, navegando até Todos os Serviços —> Registros de Contêiner do Azure e selecionando a instância ACR que você criou anteriormente.

3. No menu à esquerda, na seção Serviços, clique em Repositórios. A imagem Docker recém-enviada para a sua instância ACR deve aparecer aqui.

4. Clique na imagem e você verá sua versão e algumas outras informações úteis.
Executando a Instância de Contêiner do Azure (ACI)
- Agora você criou uma instância ACR, marcou uma imagem de contêiner Docker com o nome da ACR como referência e enviou a imagem para a instância ACR. Agora é hora de usar a Instância de Contêiner do Azure (ACI) para executar a imagem Docker armazenada em sua instância ACR.

Continuando a partir do passo anterior, clique no ícone de reticências (…) ao lado de latest e escolha Executar instância. Isso abrirá a tela Criar Instância de Contêiner.
- 2. Preencha os campos na caixa Criar instância de contêiner abaixo usando as seguintes informações:
- Nome do Contêiner – qualquer nome que você deseja usar para este contêiner em execução
- Tipo de SO – Linux (Isso depende do contêiner de origem. Se estiver usando o mesmo contêiner neste projeto, pode ser Windows.)
- Assinatura – sua Assinatura do Azure
- Grupo de Recursos – qualquer Grupo de Recursos do Azure existente ou novo para adicionar a instância do contêiner
Localização – com base no grupo de recursos

Para este tutorial do Azure Docker com contêiner ASP.NET, você pode deixar todas as outras configurações inalteradas. Em um ambiente de produção, dependendo do que o contêiner está executando, você pode precisar alterar essas configurações.

3. Pressione OK para criar a instância do Contêiner.
4. Assim que a instância do contêiner for implantada, você deverá ver uma página que se parece com o exemplo abaixo.

5. Assim que a implantação estiver concluída, abra o ACI no portal navegando até Todos os Serviços —> Instâncias de Contêiner. Uma vez aqui, procure pela Instância de Contêiner do Azure (ACI) que acabou de ser criada. Você deverá ver a instância mostrada abaixo.

6. Copie o endereço IP no canto superior direito e cole-o em um navegador da web. Seu aplicativo web de exemplo ASP.NET deve ser carregado a partir da sua Instância de Contêiner do Azure (ACI) e exibir uma página da web como mostrado abaixo.
Se você terminou com este contêiner, pode então usar o comando az container delete
para remover o contêiner.
Conclusão