Compartilhar via


Início Rápido: Criar um registro de contêiner do Azure usando o portal do Azure

O Registro de Contêiner do Azure é um serviço de registro privado para compilar, armazenar e gerenciar 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 o portal do Azure. Em seguida, use comandos do Docker para enviar uma imagem de contêiner para o registro do Docker. Por fim, você faz o pull e executa a imagem do seu registro.

Pré-requisitos

Se você ainda não tiver uma conta do Azure, crie uma conta gratuita antes de começar.

Para entrar no Registro para trabalhar com imagens de contêiner, este início rápido exige que você execute a CLI do Azure, preferencialmente a versão mais recente. Se precisar instalar ou atualizar a CLI, confira Como instalar a CLI do Azure.

Você também precisa ter o Docker instalado localmente com o daemon em execução. O Docker fornece pacotes que configuram facilmente o Docker em qualquer sistema Mac, Windows ou Linux.

Criar um registro de contêiner

  1. Entre no Portal do Azure.

  2. Selecione Criar um recurso>Serviços de infraestrutura>Registro de Contêiner>Criar.

    Captura de tela da opção para criar um novo recurso de registro de contêiner no portal do Azure.

  3. Na guia Noções básicas , selecione a assinatura na qual você deseja criar o registro de contêiner.

  4. Selecione Criar novo para criar um novo grupo de recursos e insira myResourceGroup o nome do grupo de recursos.

  5. Insira um nome do Registro. O nome do registro deve ser exclusivo no Azure e conter de 5 a 50 caracteres alfanuméricos, excluindo caracteres de traço (-). Esse nome faz parte do nome DNS totalmente qualificado do registro.

  6. Selecione Oeste dos EUA 2 para Localização e, para o Plano de Preços, selecione Standard.

  7. Para o escopo do rótulo de nome de domínio, selecione Reutilização do Locatário ou escolha outra opção, conforme descrito na seção Configurar Opção de Rótulo de Nome de Domínio (DNL).

  8. Para o modo de permissões de atribuição de função, selecione o Registro RBAC + Permissões de Repositório ABAC para manter as atribuições de função padrão do RBAC (controle de acesso baseado em função) do Microsoft Entra, enquanto, opcionalmente, aplica condições de ABAC (controle de acesso baseado em atributo) do Microsoft Entra para controle de acesso refinado no nível do repositório.

    Captura de tela mostrando as configurações de criação do registro de contêiner no portal

  9. Deixe as outras opções definidas como seus valores padrão e selecione Examinar + criar. Depois de revisar as configurações, selecione Criar.

Dica

Neste início rápido, você cria um Registro Standard , o que é suficiente para a maioria dos fluxos de trabalho do Registro de Contêiner do Azure. Para aumentar a taxa de transferência de armazenamento e de imagem, e com recursos como conexão usando um ponto de extremidade privado, a opção de plano de preços Premium (SKU) está disponível. Para obter detalhes sobre SKUs (camadas de serviço), consulte os recursos e os limites de SKU do Registro de Contêiner do Azure.

Quando a mensagem implantação bem-sucedida for exibida, selecione Ir para o recurso para exibir seu novo registro de contêiner.

Captura de tela da página de visão geral de um registro de contêiner no portal do Azure.

Anote o nome do registro e o valor do servidor de logon, que é um nome totalmente qualificado que termina com na azurecr.io nuvem do Azure.

Use o servidor de login nas etapas a seguir ao enviar e realizar push e pull de imagens com o Docker, bem como em referências subsequentes, como Dockerfiles, YAML do Kubernetes e Helm charts.

Entre para se registrar

Antes de efetuar push e pull de imagens de contêiner, entre na instância do registro. Entre na CLI do Azure em seu computador local e execute o comando de logon do az acr .

Especifique apenas o nome do recurso do Registro ao entrar com a CLI do Azure, como az acr login -n registryname. Não use o nome do servidor de logon totalmente qualificado, como registryname.azurecr.io ou registryname-hash.azurecr.io (para registros habilitados para DNL).

az acr login --name <registry-name>

Exemplo:

az acr login --name contosoacrregistry

O comando retorna Login Succeeded quando é concluído.

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 Registro de Artefato da Microsoft.

docker pull mcr.microsoft.com/hello-world

Para efetuar push de uma imagem para o registro, você precisa marcá-la usando a marca docker com o nome totalmente qualificado de seu servidor de logon do registro.

  • O formato de nome do servidor de logon para registros protegidos de Rótulo de Nome de Domínio (DNL) com um hash de nome DNS exclusivo incluído é mycontainerregistry-abc123.azurecr.io.
  • O formato de nome do servidor de logon para registros criados com a opção Unsecure DNL é mycontainerregistry.azurecr.io.

Por exemplo, se você criar um registro com o escopo DNL Tenant Reuse, o servidor de logon pode ser semelhante a mycontainerregistry-abc123.azurecr.io com um hash no nome de DNS. Se você criar um registro com a opção Unsecure DNL, o servidor de logon será semelhante mycontainerregistry.azurecr.io, sem o hash.

Marque a imagem usando o comando docker tag com o servidor de login do registro. Para este início rápido, marque a imagem de hello-world com v1.

Comando de exemplo para marcar uma imagem para um registro protegido por DNL:

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

Comando de exemplo para marcar uma imagem para um registro não DNL:

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 enviar a imagem por push para o registro de contêiner, remova a hello-world:v1 imagem do ambiente local do Docker usando o comando docker rmi . Esse comando 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

Para listar as imagens no registro, acesse o registro no portal. Em Serviços, selecione Repositórios e, em seguida, selecione o repositório hello-world que você criou com docker push.

Captura de tela mostrando as imagens de contêiner de um registro de contêiner no portal do Azure.

Quando você seleciona o repositório hello-world, você vê a imagem marcada sob v1.

Executar a imagem do registro

Agora, você pode efetuar pull e executar a imagem do contêiner hello-world:v1 do seu 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 os recursos

Para remover os recursos que você criou, vá para o grupo de recursos myResourceGroup no portal do Azure. Selecione Excluir grupo de recursos para remover o grupo de recursos, o registro de contêiner e as imagens de contêiner.

Configurar a opção DNL (Rótulo de Nome de Domínio)

O recurso DNL (Rótulo de Nome de Domínio) reforça a segurança impedindo ataques de aquisição de subdomínio de nomes DNS do Registro. Esses ataques ocorrem quando um registro é excluído e outra entidade reutiliza o mesmo nome do Registro, potencialmente fazendo com que as referências downstream sejam extraídas do registro recriado pela outra entidade.

A DNL resolve esse problema acrescentando um hash exclusivo ao nome DNS do registro. Essa abordagem garante que, mesmo que outra entidade reutilize o mesmo nome do Registro, os nomes DNS diferem devido ao hash exclusivo. Essa proteção impede que suas referências downstream apontem inadvertidamente para o registro recriado pela outra entidade.

Ao criar um registro no portal do Azure, selecione o Escopo do Rótulo de Nome de Domínio nas opções disponíveis:

  • Não seguro: cria o nome DNS as-is, com base no nome do registro (por exemplo, contosoacrregistry.azurecr.io). Essa opção não inclui a proteção contra DNL.
  • Reutilização do Locatário: acrescenta um hash exclusivo com base no nome do locatário e do registro, garantindo que o nome DNS seja exclusivo dentro do locatário.
  • Reutilização da assinatura: acrescenta um hash exclusivo com base na assinatura, locatário e nome do registro, garantindo que o nome DNS seja exclusivo na assinatura.
  • Reutilização do Grupo de Recursos: acrescenta um hash exclusivo com base no grupo de recursos, assinatura, locatário e nome do registro, garantindo que o nome DNS seja exclusivo no grupo de recursos.
  • Sem reutilização: gera um nome DNS exclusivo com um hash exclusivo sempre que você cria o registro, independentemente de outros fatores, garantindo que o nome DNS seja sempre exclusivo.

Importante

O escopo DNL selecionado durante a criação do Registro é permanente e não pode ser modificado posteriormente. Essa escolha garante um comportamento DNS consistente e impede interrupções em referências downstream.

Para todas as opções habilitadas para DNL, exceto Unsecure, o nome DNS segue o formato registryname-hash.azurecr.io, em que o traço (-) serve como o delineador de hash. Por exemplo, um registro nomeado contosoacrregistry com o Tenant Reuse escopo DNL tem um nome DNS como contosoacrregistry-abc123.azurecr.io. Para evitar conflitos, o hífen (-) não é permitido no nome do registro.

Se o nome DNS for diferente do nome do registro, você precisará atualizar arquivos downstream como Dockerfiles, Kubernetes YAML e gráficos do Helm para refletir o nome DNS completo com o hash DNL. Por exemplo, se você quiser que o Dockerfile downstream faça referência a um registro chamado contosoacrregistry no escopo DNL Tenant Reuse, será necessário atualizar a referência para o valor completo, como contosoacrregistry-abc123.azurecr.io em seu Dockerfile downstream.

Próximas etapas