Compartilhar via


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

Este artigo é a parte dois de um tutorial de três partes. A Parte um do tutorial criou uma imagem de contêiner do Docker para um aplicativo Web Node.js. Neste tutorial, você pode enviar a imagem para um Registro de Contêiner do Azure. Se você precisar criar a imagem de contêiner, retorne ao Tutorial 1 – Criar imagem de contêiner.

O Registro de Contêiner do Azure é o registro de Docker privado no Azure. Neste tutorial, parte dois da série, você vai:

  • Criar uma instância de Registro de Contêiner do Azure usando a CLI do Azure
  • Marca uma imagem de contêiner para o Registro de Contêiner do Azure
  • Carrega a imagem em seu registro

No próximo artigo, que é o último da série, você implanta o contêiner do seu registro privado nas Instâncias de Contêiner do Azure.

Antes de começar

Você deve atender aos seguintes requisitos para concluir este tutorial:

CLI do Azure: você deve ter a CLI do Azure versão 2.0.29 ou posterior instalada no computador local. Para saber qual é a versão, execute az --version. Se você precisar instalar ou atualizar, confira Instalar a CLI do Azure.

Docker: este tutorial pressupõe uma compreensão básica dos conceitos fundamentais do Docker, como contêineres, imagens de contêineres e comandos básicos do docker. Para instruções sobre conceitos básicos do Docker e de contêiner, consulte a visão geral do Docker.

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

Importante

Como o Azure Cloud Shell não inclui o daemon do Docker, você deve instalar a CLI do Azure e o Mecanismo do Docker em seu computador local para concluir este tutorial. Você não pode usar o Azure Cloud Shell para este tutorial.

Crie um registro de contêiner do Azure

Antes de criar o registro de contêiner, é necessário um grupo de recursos para implantá-lo. O grupo de recursos é uma coleção lógica na qual todos os recursos do Azure são implantados e gerenciados.

Crie um grupo de recursos com o comando az group create. No exemplo a seguir, um grupo de recursos chamado myResourceGroup é criado 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 Registro de contêiner deve ser exclusivo no Azure e conter de 5 a 50 caracteres alfanuméricos. Substitua <acrName> por um nome exclusivo para o registro:

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

Aqui está uma saída parcial para um novo registro de contêiner do Azure denominado 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 restante deste tutorial se refere a <acrName> como um espaço reservado para o nome do registro de contêiner que você escolheu nesta etapa.

Entrar no registro de contêiner

Você deve entrar na instância do Registro de Contêiner do Azure antes de enviar imagens por push para ela. Use o comando az acr login para concluir a operação. Você deve fornecer o nome exclusivo que você escolheu para o registro de contêiner quando ele foi criado.

az acr login --name <acrName>

Por exemplo:

az acr login --name mycontainerregistry082

O comando retorna Login Succeeded na conclusão:

Login Succeeded

Marcar imagem de contêiner

Para enviar por push uma imagem de contêiner para um registro privado, como o Registro de Contêiner do Azure, primeiro você deve marcar a imagem com o nome completo do servidor de logon do registro.

Primeiro, obtenha o nome do servidor de logon completo para o registro de contêiner 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 registro é denominado mycontainerregistry082:

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

Agora, exiba a lista de suas imagens locais com o comando imagens do docker:

docker images

Juntamente com quaisquer outras imagens que você tem em seu computador, você deve ver a imagem aci-tutorial-app incorporada no tutorial anterior:

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

Marcar a imagem aci-tutorial-app com o servidor de logon do registro de contêiner. Além disso, adicione a marca :v1 no final do nome da imagem para indicar o número de versão da imagem. Substitua <acrLoginServer> pelo resultado do comando az acr show que você 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 imagem por push ao Registro de Contêiner do Azure

Agora que você marcou a imagem aci-tutorial-app com o nome completo do servidor de logon do registro privado, você pode enviar a imagem por push para o registro com o comando docker push. Substitua <acrLoginServer> pelo nome do servidor de logon completo obtido na etapa anterior.

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

A operação push deve levar de alguns segundos a alguns minutos, dependendo da 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 Registro de Contêiner do Azure

Para verificar se a imagem que você acabou de enviar realmente está em seu registro de contêiner do Azure, liste as imagens em seu registro com o comando az acr repository list. Substitua <acrName> pelo nome do seu Registro de contêiner.

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 marcas de uma imagem específica, use o comando az acr repository show-tags.

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

Você deverá ver uma saída semelhante ao seguinte exemplo:

--------
v1

Próximas etapas

Neste tutorial, você preparou um registro de contêiner do Azure para ser usado com Instâncias de Contêiner do Azure e enviou por push uma imagem de contêiner ao registro. As etapas a seguir foram concluídas:

  • Uma instância de Registro de Contêiner do Azure foi criada usando a CLI do Azure
  • Uma imagem de contêiner foi marcada para o Registro de Contêiner do Azure
  • Uma imagem foi carregada no Registro de Contêiner do Azure

Avance para o próximo tutorial para saber como implantar o contêiner no Azure usando as Instâncias de Contêiner do Azure: