Tutorial: Criar um registro de contêiner do Azure e enviar por push uma imagem de contêiner

Este artigo é a segunda parte de um tutorial de três partes. Na Parte um do tutorial criou uma imagem de contentor Docker para uma aplicação Web Node.js. Neste tutorial, vai enviar a imagem para o Azure Container Registry. Se você precisar criar a imagem de contêiner, retorne ao Tutorial 1 – Criar imagem de contêiner.

O Azure Container Registry é o seu registo de Docker privado no Azure. Neste tutorial, parte dois da série, você:

  • Criar uma instância do Registro de Contêiner do Azure com a CLI do Azure
  • Marcar uma imagem de contentor para o seu registo de contentor do Azure
  • Carregar a imagem para o seu registo

No próximo artigo, o último da série, vai implementar o contentor do seu registo privado para o Azure Container Instances.

Antes de começar

Tem de cumprir os requisitos seguintes para concluir este tutorial:

CLI do Azure: Tem de ter a CLI do Azure versão 2.0.29 ou posterior instalada no computador local. Para localizar a versão, execute az --version. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.

Docker: Este tutorial pressupõe conhecimentos básicos dos principais conceitos do Docker, como contentores, imagens de contentor e comandos básicos do docker. Para um manual de noções básicas do Docker e do contentor, veja a descrição geral do Docker.

Docker: Para concluir este tutorial, você precisa do Docker instalado localmente. O Docker oferece pacotes que configuram o ambiente do Docker no macOS, no Windows e no Linux.

Importante

Uma vez que a shell do Azure Cloud não inclui o daemon do Docker, tem de instalar a CLI do Azure e o Motor do Docker no seu computador local para concluir este tutorial. Não pode utilizar o Azure Cloud Shell para este tutorial.

Criar um registo de contentor do Azure

Antes de criar o registo de contentor, precisa de um grupo de recursos no qual o implementar. Um grupo de recursos é uma coleção lógica na qual todos os recursos do Azure são implementados e geridos.

Crie um grupo de recursos com o comando az group create. No exemplo seguinte, é criado um grupo de recursos designado myResourceGroup na região eastus:

az group create --name myResourceGroup --location eastus

Depois de criar o grupo de recursos, crie um registro de contêiner do Azure com o comando az acr create . O nome do registo de contentor tem de ser exclusivo no Azure e pode incluir de 5 a 50 carateres alfanuméricos. Substitua <acrName> por um nome exclusivo para o seu registo:

az acr create --resource-group myResourceGroup --name <acrName> --sku Basic

Aqui está a saída parcial para um novo registro de contêiner do Azure chamado mycontainerregistry082:

{
  "creationDate": "2020-07-16T21:54:47.297875+00:00",
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
  "location": "eastus",
  "loginServer": "mycontainerregistry082.azurecr.io",
  "name": "mycontainerregistry082",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

O resto do tutorial refere-se a <acrName> como um marcador de posição para o nome do registo de contentor que escolheu neste passo.

Iniciar sessão no registo de contentores

Você deve entrar em sua instância do Registro de Contêiner do Azure antes de enviar imagens por push para ela. Utilize o comando az acr login para concluir a operação. Tem de fornecer o nome exclusivo que escolheu para o registo de contentor quando o criou.

az acr login --name <acrName>

Por exemplo:

az acr login --name mycontainerregistry082

O comando devolve Login Succeeded depois de estar concluído:

Login Succeeded

Imagem de contentor

Para enviar por push uma imagem de contentor para um registo privado, como o Azure Container Registry, primeiro tem de marcar a imagem com o nome completo do servidor de início de sessão no registo.

Em primeiro lugar, obtenha o nome completo do servidor de início de sessão do seu registo de contentor do Azure. Execute o seguinte comando az acr show e substitua <acrName> pelo nome do registro que você criou:

az acr show --name <acrName> --query loginServer --output table

Por exemplo, se o registo tiver o nome mycontainerregistry082:

az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io

Agora, apresente a lista das suas imagens locais com o comando docker images:

docker images

Juntamente com quaisquer outras imagens que tiver no seu computador, deverá ver a imagem aci-tutorial-app que incorporou no tutorial anterior:

docker images
REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app    latest    5c745774dfa9    39 minutes ago    68.1 MB

Marque a imagem aci-tutorial-app com o servidor de login do seu registro de contêiner. Além disso, adicione a etiqueta :v1 ao fim do nome da imagem para indicar o número da versão da imagem. Substitua <acrLoginServer> pelo resultado do comando az acr show que executou anteriormente.

docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1

Execute docker images novamente para verificar a operação de marcação:

docker images
REPOSITORY                                            TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app                                      latest    5c745774dfa9    39 minutes ago    68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app    v1        5c745774dfa9    7 minutes ago     68.1 MB

Enviar imagens para o Azure Container Registry

Agora que você marcou a imagem aci-tutorial-app com o nome completo do servidor de login do seu registro privado, você pode enviar a imagem para o registro com o comando docker push . Substitua <acrLoginServer> pelo nome completo de servidor de início de sessão que obteve no passo anterior.

docker push <acrLoginServer>/aci-tutorial-app:v1

A push operação deve levar de alguns segundos a alguns minutos, dependendo da sua conexão com a Internet, e a saída é semelhante ao exemplo a seguir:

docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576

Listar imagens no Azure Container Registry

Para certificar-se de que a imagem que enviou por push está, de facto, no seu registo de contentor do Azure, liste as imagens no registo com o comando az acr repository list. Substitua <acrName> pelo nome do seu registo de contentor.

az acr repository list --name <acrName> --output table

Por exemplo:

az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app

Para ver as etiquetas de uma imagem específica, utilize o comando az acr repository show-tags.

az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table

Você deve ver uma saída semelhante ao exemplo a seguir:

--------
v1

Próximos passos

Neste tutorial, preparou um registo de contentor do Azure para utilização com o Azure Container Instances e enviou por push uma imagem de contentor para o registo. Foram efetuados os seguintes passos:

  • Criou uma instância do Registro de Contêiner do Azure com a CLI do Azure
  • Marcou uma imagem de contentor para o Azure Container Registry
  • Carregou uma imagem para o Azure Container Registry

Avance para o próximo tutorial para saber como implementar o contentor para o Azure através do Azure Container Instances: