Implante o Azure Docker com Maestria: Guia Passo a Passo

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:

  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 Registro de Contêiner do Azure
  4. O Azure CLI para Windows instalado. Você vai aprender a partir da linha de comando.
  5. A beginner understanding of containers and Docker.
  6. 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.

Inspecting information about the local Docker installation

Para validar a inicialização de um contêiner Docker, execute docker run hello-world. Nos bastidores, o comando docker realiza algumas etapas:

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

> 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 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.
  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 acessar o aplicativo da web na porta 8000 localmente.
  4. (-it) – O contêiner será iniciado interativamente, o que significa que você será imediatamente levado ao console quando ele começar.
  5. (—rm) – Quando o contêiner for parado, 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 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

Sample ASP.NET web app

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.

  1. Faça login no 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, como 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, 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.

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

–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

  1. Agora, precisa de passar do Azure Cloud Shell para o seu computador Windows local para concluir a configuração.
  2. Na sua máquina local, inicie o PowerShell ou um prompt de comando com direitos administrativos. Vou usar o PowerShell.
  3. Autentique-se no Azure com a CLI do Azure executando az login e siga as instruções para fornecer suas credenciais.
Authenticating to Azure

Uma vez autenticado com sucesso, você deverá ver alguma saída JSON indicando o usuário com o qual você 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 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 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.
Finding the ACR Docker image

Encontre o número de identificação ou 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 própria imagem, 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. Carregando a Imagem Docker na Instância do ACR e Verificando
> 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 como mostrado abaixo, fornecendo o rótulo do nome DNS onde a instância ACR está localizada.

Inspecting ACR instance in Azure portal

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.

Inspecting Docker repo

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.

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

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

Creating a container instance

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.

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, navegue até a 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 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

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