Implementar uma imagem do Docker numa Instância de Contentor do Azure

Concluído

A Instância de Contêiner do Azure é um serviço que carrega e executa imagens do Docker sob demanda. O serviço de Instância de Contêiner do Azure pode recuperar uma imagem de um Registro, como o Hub do Docker ou o Registro de Contêiner do Azure.

A sua organização quer utilizar o Azure para executar as respetivas aplicações Web. Por esse motivo, faz sentido armazenar as imagens no Registro de Contêiner do Azure e executá-las usando o serviço de Instância de Contêiner do Azure.

Nesta unidade, você aprenderá como carregar uma imagem do Docker no Registro de Contêiner do Azure. Em seguida, você executará a imagem usando o serviço de Instância de Contêiner do Azure.

Usar o Registro de Contêiner do Azure para armazenar um contêiner

O Registro de Contêiner do Azure é um serviço de hospedagem de registro fornecido pelo Azure. Cada recurso do Azure Container Registry que criar é um registo separado com um URL exclusivo. Esses registros são privados, o que significa que exigem autenticação para enviar ou extrair imagens. O Registro de Contêiner do Azure é executado na nuvem e fornece níveis semelhantes de escalabilidade e disponibilidade a outros serviços do Azure.

Você pode criar um registro usando o portal do Azure ou a CLI (Interface de Linha de Comando) do Azure. Você pode usar o Cloud Shell no portal do Azure ou uma instalação local da CLI do Azure. Lembre-se de que você terá que criar um grupo de recursos antes de criar o registro. Ao criar um grupo de recursos, recomendamos escolher a região mais próxima. Neste exemplo, o nome do nosso grupo de recursos é , e o local é mygroupOeste dos EUA.

Não é necessário executar nenhum dos seguintes comandos. Faremos isso no próximo exercício.

Nota

Você precisa de um nome exclusivo para seu contêiner. Você pode verificar se um nome já está em uso aqui.

az group create --name mygroup --location westus
az acr create --name <unique name> --resource-group mygroup --sku standard --admin-enabled true

SKUs diferentes proporcionam níveis diferentes de escalabilidade e armazenamento.

Os repositórios do Registo de Contentores do Azure são privados, o que significa que não suportam acesso não autenticado. Para solicitar imagens de um repositório do Azure Container Registry, utilize o comando docker login e especifique o URL do servidor de início de sessão do registo. O URL do servidor de início de sessão de um registo no Azure Container Registry tem o formato <nome_registo>.azurecr.io.

docker login myregistry.azurecr.io

O login no Docker solicitará um nome de usuário e senha. Para encontrar essas informações, vá para o portal do Azure e procure as chaves de acesso para o Registro ou execute o seguinte comando.

az acr credential show --name myregistry --resource-group mygroup

Você envia uma imagem do computador local para um registro do Docker usando o docker push comando. Antes de enviar uma imagem por push, você deve criar um alias para a imagem que especifica o repositório e a marca que o registro do Docker cria. O nome do repositório deve ter o formato *<login_server>/image_name>:<tag/<.> Utilize o comando docker tag para realizar esta operação. O exemplo a seguir cria um alias para a imagem reservationsystem.

docker tag reservationsystem myregistry.azurecr.io/reservationsystem:v2

Se você executar docker image lso , verá duas entradas para a imagem: uma com o nome original e a segunda com o novo alias.

Depois de executar o comando tag, você pode carregar a imagem no Registro no Registro de Contêiner do Azure usando o comando a seguir.

docker push myregistry.azurecr.io/reservationsystem:v2

Verifique se a imagem foi carregada corretamente listando os repositórios no registro com o seguinte comando.

az acr repository list --name myregistry --resource-group mygroup

Você também pode listar as imagens no registro com o acr repository show comando.

az acr repository show --repository reservationsystem --name myregistry --resource-group mygroup

Nota

Você verá pelo menos duas tags para cada imagem em um repositório. Uma tag será o valor especificado no comando acr build (v1 no exemplo anterior). A outra será mais recente. Sempre que recriar uma imagem, o Azure Container Registry criará automaticamente a etiqueta mais recente como um alias para a versão mais recente da imagem.

Usar a Instância de Contêiner do Azure para executar uma imagem

O serviço de Instância de Contentor do Azure consegue carregar uma imagem a partir do Azure Container Registry e executá-la no Azure.

Para criar uma instância de contentor e dar início à execução da imagem, utilize o comando az container create. Forneça o nome de utilizador e a palavra-passe do registo nos parâmetros registry-username e registry-password. Será atribuído um endereço IP à instância. Este endereço IP permite-lhe aceder à instância. Opcionalmente, pode especificar um nome DNS se preferir fazer referência à instância através de uma etiqueta mais amigável. Tenha em atenção que tem de especificar a imagem como um URL que faz referência ao seu registo (myregistry) no serviço Azure Container Registry (azurecr.io). Se você estiver usando o Docker Hub ou algum outro registro, substitua essa URL pela URL da sua imagem nesse registro.

az container create --resource-group mygroup --name myinstance --image myregistry.azurecr.io/myapp:latest --dns-name-label mydnsname --registry-username <username> --registry-password <password>

O Azure hospeda a instância com um nome de domínio baseado no rótulo DNS especificado. Você pode encontrar o nome de domínio totalmente qualificado da instância consultando o endereço IP da instância.

az container show --resource-group mygroup --name myinstance --query ipAddress.fqdn

Pode aceder à aplicação através de um browser. Você pode navegar até a URL retornada por este comando; Vamos aprender como na próxima unidade.