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: