Partilhar via


(PRECADO) Implementar e utilizar Azure Container Registry

Dica

Para a versão atualizada este tutorial que utiliza Azure Kubernetes Service, consulte Tutorial: Implementar e utilizar Azure Container Registry.

Aviso

O Serviço de Contentores Azure (ACS) está a ser depreciado. Não estão a ser adicionadas novas funcionalidades ou funcionalidades ao ACS. Todas as APIs, experiência do portal, comandos CLI e documentação são marcados como precedidos.

Em 2017, introduzimos Azure Kubernetes Service (AKS) para simplificar a gestão, implantação e operações da Kubernetes. Se utilizar o orquestrador Kubernetes, por favor, emigre para a AKS até 31 de janeiro de 2020. Para começar, consulte migrar para Azure Kubernetes Service.

Para mais informações, consulte o anúncio de depreciação do Serviço de Contentores Azure no Azure.com.

O Azure Container Registry (ACR) é um registo privado e baseado no Azure para imagens de contentor do Docker. Este tutorial, parte 2 de 7, orienta-o na implementação de uma instância do Azure Container Registry e no envio de uma imagem de contentor para a mesma. Os passos concluídos incluem:

  • Implementar uma instância do Azure Container Registry (ACR)
  • Marcar uma imagem de contentor para o ACR
  • Carregar os ficheiros de imagem para o ACR

Em tutoriais posteriores, esta instância do ACR é integrada num cluster do Kubernetes do Azure Container Service.

Antes de começar

No tutorial anterior, foi criada uma imagem de contentor para uma aplicação de Votação simples do Azure. Se não tiver criado a imagem de aplicação de Votação do Azure, regresse ao Tutorial 1 – Criar imagens de contentor.

Este tutorial requer a execução da versão 2.0.4 ou posterior da CLI do Azure. Executar az --version para localizar a versão. Se precisar de instalar ou atualizar, veja Instalar a CLI do Azure.

Implementar o Azure Container Registry

Ao implementar um Azure Container Registry, tem de começar por obter um grupo de recursos. Um grupo de recursos do Azure é um contentor lógico no qual os recursos do Azure são implementados e geridos.

Crie um grupo de recursos com o comando az group create. Neste exemplo, é criado um grupo de recursos chamado myResourceGroup na região westeurope.

az group create --name myResourceGroup --location westeurope

Crie um registo do Contentor Azure com o comando az acr create . O nome de um Registo de Contentor tem de ser exclusivo.

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

Em todo o resto deste tutorial, utilizamos <acrname> como um marcador de posição para o nome do registo de contentor.

Iniciar sessão no registo de contentor

Utilize o comando az acr login para iniciar sessão na instância do ACR. Tem de fornecer o nome exclusivo dado ao registo de contentor quando este foi criado.

az acr login --name <acrName>

O comando devolve uma mensagem "Início de sessão com êxito" depois de concluir.

Marcar imagens de contentor

Para ver uma lista das imagens atuais, utilize o comando docker images.

docker images

Resultado:

REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front             latest              4675398c9172        13 minutes ago      694MB
redis                        latest              a1b99da73d05        7 days ago          106MB
tiangolo/uwsgi-nginx-flask   flask               788ca94b2313        9 months ago        694MB

Cada imagem de contentor tem de ser marcada com o nome loginServer do registo. Esta etiqueta é utilizada para encaminhamento ao enviar imagens de contentor para um registo de imagem.

Para obter o nome loginServer, execute o seguinte comando.

az acr list --resource-group myResourceGroup --query "[].{acrLoginServer:loginServer}" --output table

Agora, marque a imagem azure-vote-front com o loginServer do registo de contentor. Além disso, adicione :v1 ao final do nome da imagem. Esta etiqueta identifica a versão da imagem.

docker tag azure-vote-front <acrLoginServer>/azure-vote-front:v1

Depois de marcada, execute imagens do docker para verificar a operação.

docker images

Resultado:

REPOSITORY                                           TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front                                     latest              eaf2b9c57e5e        8 minutes ago       716 MB
mycontainerregistry082.azurecr.io/azure-vote-front   v1            eaf2b9c57e5e        8 minutes ago       716 MB
redis                                                latest              a1b99da73d05        7 days ago          106MB
tiangolo/uwsgi-nginx-flask                           flask               788ca94b2313        8 months ago        694 MB

Enviar imagens para o registo

Envie a imagem azure-vote-front para o registo.

Utilizando o seguinte exemplo, substitua o nome loginServer do ACR pelo loginServer do seu ambiente.

docker push <acrLoginServer>/azure-vote-front:v1

Este processo demora poucos minutos a concluir.

Listar imagens no registo

Para devolver uma lista de imagens que foram enviadas para o seu Azure Container Registry, utilize o comando az acr repository list. Atualize o comando com o nome de instância do ACR.

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

Resultado:

Result
----------------
azure-vote-front

Em seguida, 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 azure-vote-front --output table

Resultado:

Result
--------
v1

Ao concluir o tutorial, a imagem de contentor foi armazenada numa instância privada do Azure Container Registry. Esta imagem é implementada do ACR para um cluster do Kubernetes em tutoriais posteriores.

Passos seguintes

Neste tutorial, um Azure Container Registry foi preparado para utilização num cluster do AKS Kubernetes. Foram efetuados os seguintes passos:

  • Implementou uma instância do Azure Container Registry
  • Marcou uma imagem de contentor para o ACR
  • Carregou a imagem para o ACR

Avance para o próximo tutorial para saber mais sobre implementar um cluster do Kubernetes no Azure.