Partilhar via


Guia de 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 criar, armazenar e gerenciar imagens de contêiner e artefatos relacionados. Neste início rápido, você cria uma instância do Registro de contêiner do Azure com o portal do Azure. Em seguida, use os comandos do Docker para enviar uma imagem de contêiner para o registro e, finalmente, puxe e execute a imagem do seu registro.

Para iniciar sessão no registo para trabalhar com imagens de contentor, 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).

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

Iniciar sessão no Azure

Inicie sessão no portal do Azure.

Criar um registo de contentores

Selecione Criar um recurso>Contentores>Container Registry.

Navegue até o registro de contêiner no portal

Configurar o nome do registro do contêiner e a 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 chamado myResourceGroupe, para SKU, selecione Standard.

Criar 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 Opção de Rótulo de Nome de Domínio (DNL)

O recurso DNL (Domain Name Label) fortalece a segurança, impedindo ataques de invasão de subdomínio de nomes DNS do registro. Esses ataques ocorrem quando um registro é excluído e outra entidade reutiliza o mesmo nome de registro, potencialmente fazendo com que referências downstream sejam extraídas do registro recriado pela outra entidade.

DNL resolve isso anexando 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 as suas referências a jusante de apontarem inadvertidamente para o registo recriado pela outra entidade.

Ao criar um registro a partir do Portal, selecione o Escopo do Rótulo de Nome de Domínio entre as opções disponíveis:

  • Não seguro: cria o nome DNS as-is, com base no nome do Registro (por exemplo, contosoacrregistry.azurecr.io). Esta opção não inclui proteção DNL.
  • Tenant Reuse: acrescenta um hash exclusivo com base no tenant e no nome do registro, garantindo que o nome DNS seja exclusivo dentro do tenant.
  • Reutilização da assinatura: acrescenta um hash exclusivo com base na assinatura, no locatário e no nome do Registro, garantindo que o nome DNS seja exclusivo dentro da assinatura.
  • Reutilização do Grupo de Recursos: acrescenta um hash exclusivo com base no grupo de recursos, na assinatura, no locatário e no nome do Registro, garantindo que o nome DNS seja exclusivo dentro do 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 consistente do DNS e evita interrupções nas referências downstream.

Opção Configurar Etiqueta de Nome de Domínio

Implicações do 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, onde o traço (-) serve como 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, necessitando de 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 seu Dockerfile downstream faça referência a um registro nomeado contosoacrregistry com o Tenant Reuse escopo DNL, será necessário atualizar a referência em contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io seu Dockerfile downstream.

Captura de ecrã a mostrar a revisão da opção Etiqueta de Nome de Domínio e 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. Esta opção determina como o Microsoft Entra Role-Based Access Control (RBAC) e as atribuições de função do Microsoft Entra são geridas para o registo, incluindo o uso do Microsoft Entra Attribute-Based Access Control (ABAC) para permissões de repositório do Microsoft Entra.

Escolha "RBAC Registry + ABAC Repository Permissions" para manter as atribuições de função padrão do Microsoft Entra RBAC, enquanto opcionalmente aplica as condições do Microsoft Entra ABAC para controle de acesso refinado no nível do repositório.

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

Para obter mais informações sobre essa opção, consulte Microsoft Entra attribute-based access control (ABAC) para permissões de repositório.

Implantando o registro de contêiner

Aceite os valores padrão para as configurações restantes. Em seguida, selecione Rever + criar. Depois de revisar as configurações, selecione Criar.

Gorjeta

Neste início rápido, você cria um Registro Padrão , que é suficiente para a maioria dos fluxos de trabalho do Registro de Contêiner do Azure. Escolha outros níveis para aumentar o armazenamento e a largura de banda para imagens, e capacidades como conexão usando um endpoint privado. Para obter detalhes sobre as camadas de serviço disponíveis (SKUs), consulte Camadas de serviço do Registo de Contentores.

Quando a mensagem Implantação bem-sucedida for 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 do servidor de Logon, que é um nome totalmente qualificado que termina na azurecr.io nuvem do Azure. Se você selecionou uma opção DNL, o nome do servidor de login incluirá um hash exclusivo.

Use o servidor de login nas etapas a seguir ao enviar e extrair imagens com o Docker, bem como em referências downstream, como Dockerfiles, Kubernetes YAML e gráficos Helm.

Iniciar sessão no registo

Antes de enviar e extrair imagens de contêiner, você deve fazer login na instância do Registro. Entre na CLI do Azure em sua máquina local e 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 login 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 devolve Login Succeeded depois de estar concluído.

Enviar imagem para o repositório

Para enviar uma imagem para um registo do Azure Container, primeiro tem de ter uma imagem. Se você ainda não tiver nenhuma imagem de contêiner local, execute o seguinte comando docker pull para extrair uma imagem pública existente. Para este exemplo, extraia a hello-world imagem do Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

Antes de enviar uma imagem para o seu registro, você deve marcá-la usando a tag docker com o nome totalmente qualificado do seu servidor de login do registro.

  • O formato de nome do servidor de login para registros protegidos por DNL (Domain Name Label) com um hash de nome DNS exclusivo incluído é mycontainerregistry-abc123.azurecr.io.
  • O formato de nome do servidor de login para registros criados com a Unsecure opção DNL é mycontainerregistry.azurecr.io.

Por exemplo, se o seu registo foi criado com o Tenant Reuse âmbito DNL, o servidor de início de sessão poderá parecer mycontainerregistry-abc123.azurecr.io com um hash no nome DNS. Se o seu registro foi criado com a Unsecure opção DNL, o servidor de login ficaria como 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 do nome DNS, consulte Guia de início rápido - Criar registro no portal.

Exemplo: Marcar uma imagem antes de usar o comando push

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

Etiquetagem de imagem para um registo não-DNL:

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

Etiquetagem de imagem para um registo habilitado para DNL.

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

Por fim, use docker push para enviar a imagem para a instância do registo. Substitua <login-server> pelo nome do servidor de login da sua instância do Registro. Este exemplo cria o repositório hello-world , contendo a hello-world:v1 imagem.

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

Depois de enviar a imagem para o registo de contentores, remova a imagem hello-world:v1 do seu ambiente local do Docker. (Observe que esse comando docker rmi não remove a imagem do repositório hello-world em seu registro de contêiner do Azure.)

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

Listar imagens de contenedores

Para listar as imagens no seu registo, navegue até ao seu registo no portal e selecione Repositórios e, em seguida, selecione o repositório hello-world.

Listar imagens de contêiner no portal

Ao selecionar o repositório hello-world, vê a imagem v1 marcada em Tags.

Executar imagem do repositório

Agora, você pode extrair e executar a imagem do contêiner do seu registro de contêiner usando o hello-world:v1 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.

[...]

Clean up resources (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 do contêiner e as imagens de contêiner armazenadas lá.

Excluir grupo de recursos no portal

Próximos passos

Neste início rápido, você criou um Registro de Contêiner do Azure com o portal do Azure, enviou por push uma imagem de contêiner e extraiu e executou a imagem do Registro. Continue para os tutoriais do Registro de Contêiner do Azure para obter uma visão mais profunda do ACR.