Início Rápido: criar um registro de contêiner privado usando a CLI do Azure

O Registro de Contêiner do Azure é um serviço de registro privado para gerar, armazenar e fornecer imagens de contêiner e artefatos relacionados. Neste guia de início rápido, você vai criar uma instância de registro de contêiner com a CLI do Azure. Em seguida, use os comandos do Docker para efetuar push de uma imagem de contêiner no Registro e, por fim, efetuar pull e executar a imagem do seu Registro.

Este início rápido exige que você esteja executando a CLI do Azure (versão 2.0.55 ou posterior é recomendada). Execute az --version para encontrar a versão. Se você precisa instalar ou atualizar, consulte Instalar a CLI do Azure.

Você também deve ter o Docker instalado localmente. O Docker fornece pacotes que configuram facilmente o Docker em qualquer sistema macOS, Windows ou Linux.

Como o Azure Cloud Shell não inclui todos os componentes de Docker necessários (o daemon dockerd), você não pode usar o Cloud Shell para este guia de início rápido.

Criar um grupo de recursos

Crie um grupo de recursos com o comando az group create. Um grupo de recursos do Azure é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados.

O exemplo a seguir cria um grupo de recursos chamado myResourceGroup no local eastus.

az group create --name myResourceGroup --location eastus

Criar um registro de contêiner

Neste início rápido você criará um Registro Básico, que é uma opção com otimização de custo para desenvolvedores que estão aprendendo sobre o Registro de Contêiner do Azure. Para obter detalhes sobre as camadas de serviço disponíveis, confira Camadas de serviço do registro de contêiner.

Crie uma instância ACR usando o comando az acr create. O nome do registro deve ser exclusivo no Azure e conter de 5 a 50 caracteres alfanuméricos em minúsculas. No exemplo a seguir, mycontainerregistry é usado. Atualize-o para um valor exclusivo.

az acr create --resource-group myResourceGroup \
  --name mycontainerregistry --sku Basic

Quando o registro é criado, o resultado é semelhante ao seguinte:

{
  "adminUserEnabled": false,
  "creationDate": "2019-01-08T22:32:13.175925+00:00",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry",
  "location": "eastus",
  "loginServer": "mycontainerregistry.azurecr.io",
  "name": "mycontainerregistry",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Anote loginServer na saída, que é o nome totalmente qualificado do Registro (todo em minúsculas). No restante deste início rápido, <registry-name> é um espaço reservado para o nome do registro de contêiner e <login-server> é um espaço reservado para o nome do servidor de logon do registro.

Dica

Neste guia de início rápido, você criará um registro básico, que é uma opção com otimização de custo para desenvolvedores que estão aprendendo sobre o Registro de Contêiner do Azure. Escolha outras camadas para aumentar a taxa de transferência de armazenamento e imagem, além de recursos como a conexão usando um ponto de extremidade privado. Para obter detalhes sobre as camadas de serviço (SKUs) disponíveis, confira Camadas de serviço do registro de contêiner.

Fazer logon no registro

Antes de efetuar push e pull nas imagens de contêiner, você deverá fazer logon no Registro. Para fazer isso, use o comando az acr login. Especifique somente o nome do registro ao fazer logon com a CLI do Azure. Não use o nome do servidor de logon totalmente qualificado.

az acr login --name <registry-name>

Exemplo:

az acr login --name mycontainerregistry

O comando retorna uma mensagem Login Succeeded na conclusão.

Efetuar push de imagem para registro

Para enviar por push uma imagem para um Registro de Contêiner do Azure, primeiro você deve ter uma imagem. Se você ainda não tiver imagens de contêiner locais, execute o comando docker pull a seguir para efetuar pull de uma imagem pública existente. Para este exemplo, efetue pull da imagem hello-world do Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

Para efetuar push de uma imagem para o Registro, você precisa marcá-la com o nome totalmente qualificado de seu servidor de logon do Registro. O nome do servidor de logon está no formato <registry-name>.azurecr.io (tudo em letras minúsculas), por exemplo, mycontainerregistry.azurecr.io.

Marque a imagem usando o comando docker tag. Substitua o <login-server> pelo nome do servidor de logon da sua instância do ACR.

docker tag mcr.microsoft.com/hello-world <login-server>/hello-world:v1

Exemplo:

docker tag mcr.microsoft.com/hello-world mycontainerregistry.azurecr.io/hello-world:v1

Por fim, use docker push para efetuar push da imagem para a instância do registro. Substitua o <login-server> pelo nome do servidor de logon de sua instância do registro. Este exemplo cria o repositório Olá, mundo, que contém a imagem hello-world:v1.

docker push <login-server>/hello-world:v1

Depois de efetuar push da imagem no registro de contêiner, remova a imagem hello-world:v1 de seu ambiente do Docker local. (Observe que esse comando docker rmi não remove a imagem do repositório hello-world no registro de contêiner do Azure.)

docker rmi <login-server>/hello-world:v1

Listar imagens de contêiner

O exemplo a seguir lista os repositórios em seu Registro:

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

Saída:

Result
----------------
hello-world

O exemplo a seguir lista as marcas no repositório hello-world.

az acr repository show-tags --name <registry-name> --repository hello-world --output table

Saída:

Result
--------
v1

Executar a imagem do Registro

Agora, é possível efetuar pull e executar a imagem de contêiner hello-world:v1 do registro de contêiner usando docker run:

docker run <login-server>/hello-world:v1  

Saída de exemplo:

Unable to find image 'mycontainerregistry.azurecr.io/hello-world:v1' locally
v1: Pulling from hello-world
Digest: sha256:662dd8e65ef7ccf13f417962c2f77567d3b132f12c95909de6c85ac3c326a345
Status: Downloaded newer image for mycontainerregistry.azurecr.io/hello-world:v1

Hello from Docker!
This message shows that your installation appears to be working correctly.

[...]

Limpar recursos

Quando não for mais necessário, você poderá usar o comando az group delete para remover o grupo de recursos, o registro de contêiner e as imagens de contêiner armazenadas lá.

az group delete --name myResourceGroup

Próximas etapas

Neste início rápido, você criou um Registro de Contêiner do Azure com a CLI do Azure, efetuou push de uma imagem de contêiner para o Registro e extraiu e executou a imagem do Registro. Prossiga para os tutoriais de Registro de Contêiner do Azure para uma análise mais profunda do ACR.