Para este Projeto ATA, você terá um vislumbre de como o Docker funciona no Azure. Neste tutorial do Docker no Azure, você vai aprender sobre o serviço Instância de Contêiner do Azure (ACI) da Microsoft.
A Instância de Contêiner do Azure é um cluster Kubernetes hospedado por meio do serviço de hospedagem Docker no Azure. Ele permite que você implante qualquer imagem Docker (Windows e Linux) e a execute como um contêiner. Cada contêiner Docker do Azure é executado como um contêiner independente, usando sua própria CPU e memória alocadas.
Neste projeto, você aprenderá como implantar e executar sua primeira Instância de Contêiner do Azure, com base em uma imagem de contêiner de exemplo ASP.NET da Microsoft na nuvem pública do Azure.
Até o final deste projeto, você terá um site ASP.NET em execução em um contêiner Docker hospedado pelo serviço de Instância de Contêiner do Azure.
Requisitos de Ambiente e Conhecimento
Para aproveitar ao máximo este tutorial do Docker no Azure, 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 Registro de Contêiner do Azure
- O Azure CLI para Windows instalado. Você vai aprender a partir da linha de comando.
- A beginner understanding of containers and Docker.
- A registered Docker ID.
Se não gostar do exemplo escolhido neste tutorial do 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 sessão do PowerShell e execute docker info
.
Você pode ver abaixo o tipo de saída que deve receber.

Para validar a inicialização de um contêiner Docker, execute docker run hello-world
. Nos bastidores, o comando docker
realiza algumas etapas:
- Procura por um contêiner chamado hello-word localmente em seu computador com Windows 10.
- Quando não encontrado, ele então acessa o repositório público do Docker Hub para procurar 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 do 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 algum 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, agora baixe e execute o contêiner com o qual você estará trabalhando neste Projeto. Este contêiner Docker é uma imagem de aplicativo da 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 baixa 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êineres 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 acessar o aplicativo da web na porta 8000 localmente.
- (-it) – O contêiner será iniciado interativamente, o que significa que você será imediatamente levado ao console quando ele começar.
- (
—rm
) – Quando o contêiner for parado, ele será removido.
Você pode ver abaixo a saída que pode esperar.

6. No seu navegador, conecte-se a esta aplicação 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êineres do Azure (ACR)
Assim que tiver o contentor ASP.NET descarregado para o seu computador local, é agora o momento de migrá-lo para a hospedagem Docker do Azure com ACI e executar este contentor no Azure. Para fazer isso, vamos enviar o contentor de demonstração para o Azure Container Registry (ACR). O ACR é um serviço que permite implantar e executar contentores Docker diretamente dentro do Azure.
- Faça login no Portal do Azure.
- Clique no ícone do terminal no topo para iniciar o Azure Cloud Shell.

3. Certifique-se de escolher o shell Bash, como 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, pode ver um exemplo de criação de um ACR com um SKU Básico, usando o parâmetro admin-enabled
definido como true
. Isso é definido como true
porque permite gerir recursos posteriormente.

–admin-enabled true
Quando terminar, deverá agora ter uma instância do ACR em execução dentro do seu grupo de recursos. Hospedagem Docker no Azure a salvar o dia!
Ligação à Instância do ACR Localmente
- Agora, precisa de passar do Azure Cloud Shell para o seu computador Windows local para concluir a configuração.
- Na sua máquina local, inicie o PowerShell ou um prompt de comando com direitos administrativos. Vou usar o PowerShell.
- Autentique-se no Azure com a CLI do Azure executando
az login
e siga as instruções para fornecer suas credenciais.

Uma vez autenticado com sucesso, você deverá ver alguma saída JSON indicando o usuário com o qual você 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 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 do ACR no Docker hosting ou ACI do Azure. 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 de identificação ou 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 própria imagem, 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.
- Carregando a Imagem Docker na Instância do ACR e Verificando

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

2. Uma vez carregado, verifique se o envio para a instância ACR ocorreu corretamente usando o Portal do Azure navegando para Todos os Serviços —> Registros de Contêineres 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 que acabou de ser enviada para 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, etiquetou uma imagem de contêiner Docker com o nome 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 do passo anterior, clique no … ao lado de latest e escolha Executar instância. Isso abrirá a Criar Instância de Contêiner lâmina.
- 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ê queira 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 Docker do Azure 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, navegue até a 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 da web de exemplo ASP.NET deve ser carregado a partir de 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