Domine a Implantação do Docker no Azure: Guia Passo a Passo

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:

  1. A local Windows 10 client with Docker Desktop installed.
  2. A Microsoft Azure account
  3. Acesso a uma conta do Azure com permissões para implantar um contêiner no Azure Container Registry
  4. O Windows Azure CLI instalado. Você estará aprendendo a partir da linha de comando.
  5. A beginner understanding of containers and Docker.
  6. 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.

Inspecting information about the local Docker installation

Para validar, inicie um contêiner Docker, execute docker run hello-world. Nos bastidores, o comando docker realiza alguns passos:

  1. Procura por um contêiner chamado hello-word localmente no seu computador com Windows 10.
  2. 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.
  3. Quando o contêiner é encontrado, ele é então baixado do repositório Docker Hub.
  4. 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.

Download a sample Docker container called hello-world

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:

> docker run --name aspnetcore_sample --rm -it -p 8000:80 mcr.microsoft.com/dotnet/core/samples:aspnetapp

Este comando faz o seguinte:

  1. 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.
  2. Executa o contêiner no seu computador local.
  3. (-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.
  4. (-it) – O contêiner será iniciado interativamente, ou seja, você será imediatamente levado para o console quando ele iniciar.
  5. (—rm) – Quando o contêiner for interrompido, ele será removido.

Você pode ver abaixo a saída que pode esperar.

Downloading a container instance from Microsoft

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

Sample ASP.NET web app

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.

  1. Acesse o Portal do Azure.
  2. Clique no ícone do terminal no topo para iniciar o Azure Cloud Shell.
Starting Azure Cloud Shell

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

Bash in Azure Cloud Shell

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

> az group create --name <RGname> --location <Azure Region of choice>
Creating a resource group

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.

> az acr create --resource-group <RGname> --name <ACRname> --sku Basic
 --admin-enabled true
Creating an Azure Container Registry

–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

  1. Agora você precisa sair do Azure Cloud Shell e ir para o seu computador Windows local para concluir a configuração.
  2. No seu computador local, inicie o PowerShell ou um prompt de comando com direitos administrativos. Estarei utilizando o PowerShell.
  3. Autentique-se no Azure com o Azure CLI executando az login e siga as instruções para fornecer suas credenciais.
Authenticating to Azure

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

> az acr login --name <ACR-Name> --resource-group <RG Name>
Logging onto ACR

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

  1. 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.
Finding the ACR Docker image

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

> docker tag mcr.microsoft.com/dotnet/core/samples:aspnetapp <ACRName>.azurecr.io/<imagenameofchoice>
Updating the Docker tag

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.

Verifying Docker tag

3.   Verifique se a tag foi aplicada usando o comando docker images novamente. Agora você deve ver que a tag foi atualizada.

  1. Upload da Imagem Docker para a Instância do ACR e Verificação
> docker push <ACRName>.azurecr.io/<nameofimage>
Pushing Docker image to ACR

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.

Inspecting ACR instance in Azure portal

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.

Inspecting Docker repo

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.

Inspecting Docker image

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)

  1. 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.
Creating a container instance

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

Creating a container instance

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.

Successful container instance deployment

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.

Inspecting created container instance

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.

Sample ASP.NET Core webpage

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

Source:
https://adamtheautomator.com/azure-docker-tutorial/