Início Rápido: Criar um registo de contentor privado com a CLI do Azure

Azure Container Registry é um serviço de registo privado para criar, armazenar e gerir imagens de contentor e artefactos relacionados. Neste início rápido, vai criar uma instância do Azure Container Registry com a CLI do Azure. Em seguida, utilize os comandos do Docker para enviar uma imagem de contentor para o registo e, por fim, solicitar e executar a imagem a partir do seu registo.

Este início rápido requer que esteja a executar a CLI do Azure (versão 2.0.55 ou posterior recomendada). Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Install Azure CLI (Instalar o Azure CLI).

Também tem de ter o Docker instalado localmente. O Docker disponibiliza pacotes que o configuram facilmente em qualquer sistema macOS, Windows ou Linux.

Uma vez que o Azure Cloud Shell não inclui todos os componentes do Docker necessários (o daemon dockerd), não é possível utilizar 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 contentor lógico no qual os recursos do Azure são implementados e geridos.

O exemplo seguinte cria um grupo de recursos com o nome myResourceGroup na localização eastus.

az group create --name myResourceGroup --location eastus

Criar um registo de contentor

Neste início rápido, vai criar um registo Básico, que é uma opção otimizada para custos para os programadores aprenderem sobre Azure Container Registry. Para obter detalhes sobre os escalões de serviço disponíveis, veja Escalões de serviço de registo de contentor.

Crie uma instância do ACR com o comando az acr create. O nome do registo tem de ser exclusivo no Azure e conter 5 a 50 carateres alfanuméricos em minúsculas. No exemplo seguinte, é utilizado mycontainerregistry . Atualize para um valor exclusivo.

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

Quando o registo é 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"
}

Tome nota no loginServer resultado, que é o nome de registo completamente qualificado (todos em minúsculas). O resto deste início <registry-name> rápido é um marcador de posição para o nome do registo de contentor e <login-server> é um marcador de posição para o nome do servidor de início de sessão do registo.

Dica

Neste início rápido, vai criar um registo Básico, que é uma opção otimizada para custos para os programadores aprenderem sobre Azure Container Registry. Escolha outras camadas para aumentar o débito de armazenamento e de imagens e capacidades, como a ligação através de um ponto final privado. Para obter detalhes sobre os escalões de serviço (SKUs) disponíveis, veja Escalões de serviço de registo de contentor.

Iniciar sessão no registo

Antes de emitir e solicitar imagens de contentor, tem de iniciar sessão no registo. Para tal, utilize o comando az acr login. Especifique apenas o nome do recurso de registo ao iniciar sessão com a CLI do Azure. Não utilize o nome do servidor de início de sessão completamente qualificado.

az acr login --name <registry-name>

Exemplo:

az acr login --name mycontainerregistry

O comando devolve uma mensagem de Login Succeeded depois de estar concluído.

Enviar imagem para o registo

Para enviar uma imagem para um registo do Azure Container, primeiro tem de ter uma imagem. Se ainda não tiver imagens de contentor locais, execute o seguinte comando docker pull para solicitar uma imagem pública existente. Neste exemplo, extraia a hello-world imagem do Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

Antes de poder enviar uma imagem para o seu registo, tem de a etiquetar com o nome completamente qualificado do servidor de início de sessão do registo. O nome do servidor de início de sessão está no formato <registry-name.azurecr.io> (tem de estar em minúsculas), por exemplo, mycontainerregistry.azurecr.io.

Crie uma etiqueta para a imagem com o comando etiqueta do docker. Substitua <login-server> pelo nome do servidor de início de sessão 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, utilize docker push para enviar a imagem para a instância de registo. Substitua <login-server> pelo nome do servidor de início de sessão da sua instância de registo. Este exemplo cria o repositório hello-world , que contém a hello-world:v1 imagem.

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

Depois de enviar a imagem para o registo de contentor, remova a hello-world:v1 imagem do seu ambiente local do Docker. (Tenha em atenção que este comando docker rmi não remove a imagem do repositório hello-world no seu registo de contentor do Azure.)

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

Listar imagens de contentor

O exemplo seguinte lista os repositórios no seu registo:

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

Resultado:

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

O exemplo seguinte lista as etiquetas no repositório hello-world .

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

Resultado:

Result
--------
v1

Executar imagem a partir do registo

Agora, pode solicitar e executar a imagem de contentor a hello-world:v1 partir do registo de contentor com a execução do docker:

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

Exemplo de saída:

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 os recursos

Quando já não for necessário, pode utilizar o comando az group delete para remover o grupo de recursos, o registo de contentor e as imagens de contentor aí armazenadas.

az group delete --name myResourceGroup

Passos seguintes

Neste início rápido, criou um Azure Container Registry com a CLI do Azure, emite uma imagem de contentor para o registo e puxou e executou a imagem a partir do registo. Continue para os tutoriais Azure Container Registry para uma análise mais aprofundada do ACR.