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 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 o portal 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.

Para fazer logon no Registro para trabalhar com imagens de contêiner, 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 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.

Entrar no Azure

Entre no portal do Azure.

Criar um registro de contêiner

Selecione Criar um recurso>Contêineres>Registro de Contêiner.

Navegar até o registro de contêiner no portal

Configurar o nome do registro de contêiner e o SKU

Na guia Noções básicas, insira valores para Grupo de recursos e Nome do registro. O nome do registro deve ser exclusivo no Azure e conter de 5 a 50 caracteres alfanuméricos, com caracteres de traço (-) não permitidos no nome do registro. Para este início rápido, crie um novo grupo de recursos no West US 2 local nomeado myResourceGroupe, para SKU, selecione Standard.

Criar o registro de contêiner no portal

Para obter mais informações sobre diferentes opções de SKU, consulte SKUs do Registro de Contêiner do Azure.

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.

O DNL resolve isso acrescentando um hash exclusivo ao nome DNS do registro. Isso garante que, mesmo que o mesmo nome do registro seja reutilizado por outra entidade, os nomes DNS serão diferentes devido ao hash exclusivo. Isso protege suas referências downstream de apontar inadvertidamente para o registro recriado pela outra entidade.

Ao criar um registro no Portal, 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 proteção 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 o registro é criado, independentemente de outros fatores, garantindo que o nome DNS seja sempre exclusivo.

Observação

Configuração Imutável: o escopo DNL selecionado durante a criação do registro é permanente e não pode ser modificado posteriormente. Isso garante um comportamento DNS consistente e impede interrupções em referências downstream.

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

Implicações de nome DNS das opções de DNL

Formato de nome DNS: 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. Para evitar conflitos, o traço (-) não é permitido no nome do registro. Por exemplo, um registro nomeado contosoacrregistry com o Tenant Reuse escopo DNL terá um nome DNS como contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io.

Referências Downstream: o nome DNS pode diferir do nome do registro, exigindo atualizações em arquivos downstream como Dockerfiles, Kubernetes YAML e Gráficos 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 com o escopo DNL Tenant Reuse, será necessário atualizar a referência para contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io no seu Dockerfile downstream.

Captura de tela da revisão da opção Rótulo de Nome de Domínio e do nome DNS.

Configurar o modo de permissões de atribuição de função

Configure o "modo de permissões de atribuição de função" do novo registro. Essa opção determina como o controle de acesso baseado em função (RBAC) do Microsoft Entra e as atribuições de função são gerenciados para o registro, incluindo o uso do controle de acesso baseado em atributo (ABAC) do Microsoft Entra para permissões de repositório do Microsoft Entra.

Escolha “Registro RBAC + Permissões de Repositório ABAC” para reter as atribuições de função RBAC padrão do Microsoft Entra, aplicando opcionalmente as condições do ABAC do Microsoft Entra para controle de acesso refinado de nível de repositório.

Captura de tela da configuração do modo de permissões de atribuição de função

Para obter mais informações sobre essa opção, consulte o ABAC (controle de acesso baseado em atributo) do Microsoft Entra para obter permissões de repositório.

Implantando o registro de contêiner

Aceite os valores padrão para as configurações restantes. Em seguida, 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. 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.

Quando a mensagem Implantação bem-sucedida é exibida, selecione o registro de contêiner no portal.

Visão geral do registro de contêiner no portal

Anote o nome do registro e o valor doservidor de logon, que é um nome totalmente qualificado que termina com na azurecr.io nuvem do Azure. Se você selecionou uma opção DNL, o nome do servidor de logon incluirá um hash exclusivo.

Use o servidor de logon nas etapas a seguir ao enviar e efetuar push e efetuar pull de imagens com o Docker, bem como em referências downstream, como dockerfiles, YAML do Kubernetes e gráficos do Helm.

Fazer logon no registro

Antes de efetuar push e pull das imagens de contêiner, você precisa fazer logon na instância do registro. Entre na CLI do Azure no computador local e, em seguida, execute o comando az acr login.

Especifique apenas o nome do recurso do Registro ao fazer logon 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 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 a marca do 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 o registro tiver sido criado com o escopo DNL Tenant Reuse, o servidor de logon poderá ser semelhante a mycontainerregistry-abc123.azurecr.io com um hash no nome DNS. Se o registro tiver sido criado com a opção Unsecure DNL, o servidor de logon terá a aparência mycontainerregistry.azurecr.io sem o hash.

Para obter mais detalhes sobre as opções de DNL durante a criação do registro e as implicações de nome DNS, consulte Início Rápido – Criar Registro no Portal.

Exemplo: marcando uma imagem antes de fazer o push

Marque a imagem usando o comando docker tag usando o servidor de login do registro.

Marcando imagem para um registro não DNL:

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

Marcando imagem para um registro habilitado para DNL:

docker tag mcr.microsoft.com/hello-world mycontainerregistry-abc123.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 este 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

Para listar as imagens no registro, navegue até ele no portal, selecione Repositórios e selecione o repositório hello-world que você criou com docker push.

Listar imagens de contêiner no portal

Ao selecionar o repositório hello-world, você verá a imagem marcada com v1 em Marcas.

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

Para limpar seus recursos, navegue até o grupo de recursos myResourceGroup no portal. Depois que o grupo de recursos for carregado, clique em Excluir grupo de recursos para remover o grupo de recursos, o registro de contêiner e as imagens armazenadas lá.

Excluir grupo de recursos no portal

Próximas etapas

Neste início rápido, você criou um Registro de Contêiner do Azure com o portal do Azure, efetuou push de uma imagem de contêiner 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.