Compartir a través de


Inicio rápido: Creación de un instancia de Azure Container Registry mediante Azure Portal

Azure Container Registry es un servicio de registro privado para compilar, almacenar y proporcionar imágenes de contenedor y artefactos relacionados. En este inicio rápido, creará una instancia de Azure Container Registry con Azure Portal. A continuación, utilice los comandos de Docker para insertar una imagen de contenedor en el registro y, finalmente, extraiga y ejecute la imagen desde el registro.

Para iniciar sesión en el registro y trabajar con imágenes de contenedor, este inicio rápido requiere que se ejecute la CLI de Azure (se recomienda la versión 2.0.55 o posterior). Ejecute az --version para encontrar la versión. Si necesita instalarla o actualizarla, vea Instalación de la CLI de Azure.

También debe tener Docker instalado localmente con el demonio en ejecución. Docker proporciona paquetes que permiten configurar Docker fácilmente en cualquier sistema Mac, Windows o Linux.

Inicio de sesión en Azure

Inicie sesión en Azure Portal.

Creación de un Registro de contenedor

Seleccione Crear un recurso>Contenedores>Registro de contenedor.

Ir al registro de contenedor en el portal

Configurar el nombre y la SKU del registro de contenedores

En la pestaña Aspectos básicos, escriba valores para Grupo de recursos y Nombre del Registro. El nombre del Registro debe ser único en Azure y contener 5-50 caracteres alfanuméricos, con caracteres de guion (-) no permitidos en el nombre del Registro. Para esta guía de inicio rápido, cree un nuevo grupo de recursos en la West US 2 ubicación denominada myResourceGroupy para SKU, seleccione Standard.

Creación de un registro de contenedor en el portal

Para más información sobre las distintas opciones de SKU, consulte SKU de Azure Container Registry.

Configuración de la opción Etiqueta de nombre de dominio (DNL)

La característica Etiqueta de nombre de dominio (DNL) refuerza la seguridad evitando ataques de adquisición de subdominios de nombres DNS del registro. Estos ataques se producen cuando se elimina un registro y otra entidad reutiliza el mismo nombre del registro, lo que puede provocar que las referencias subsecuentes extraigan del registro recreado por la otra entidad.

DNL lo direcciona anexando un hash único al nombre DNS del registro. Esto garantiza que incluso si otra entidad reutiliza el mismo nombre del Registro, los nombres DNS variarán debido al hash único. Esto protege sus referencias de nivel inferior de apuntar involuntariamente al registro recreado por otra entidad.

Al crear un registro desde el portal, seleccione el ámbito de etiqueta de nombre de dominio en las opciones disponibles:

  • No seguro: crea el nombre DNS as-is, en función del nombre del Registro (por ejemplo, contosoacrregistry.azurecr.io). Esta opción no incluye protección contra DNL.
  • Reutilización de inquilino: agrega un hash único basado en el inquilino y el nombre del registro, asegurando que el nombre DNS sea único dentro del inquilino.
  • Reutilización de la suscripción: anexa un hash único basado en la suscripción, el inquilino y el nombre del registro, garantizando que el nombre DNS sea único dentro de la suscripción.
  • Reutilización del grupo de recursos: anexa un hash único basado en el grupo de recursos, la suscripción, el inquilino y el nombre del registro, asegurando que el nombre DNS sea único dentro del grupo de recursos.
  • Sin reutilización: genera un nombre DNS único con un hash único cada vez que se crea el registro, independientemente de otros factores, lo que garantiza que el nombre DNS siempre sea único.

Nota:

Configuración inmutable: el ámbito DNL seleccionado durante la creación del registro es permanente y no se puede modificar más adelante. Esto garantiza un comportamiento de DNS coherente y evita interrupciones en las referencias de nivel inferior.

Configuración de la opción Etiqueta de nombre de dominio

Implicaciones de las opciones de DNL en los nombres DNS

Formato de nombre DNS: para todas las opciones habilitadas para DNL excepto No seguro, el nombre DNS sigue el formato registryname-hash.azurecr.io, donde el guión (-) actúa como delimitador hash. Para evitar conflictos, no se permite el guión (-) en el nombre del Registro. Por ejemplo, un registro denominado contosoacrregistry con el Tenant Reuse ámbito DNL tendrá un nombre DNS como contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io.

Referencias descendentes: el nombre DNS puede diferir del nombre del Registro, lo que requiere actualizaciones en archivos descendentes, como Dockerfiles, YAML de Kubernetes y charts de Helm, para reflejar el nombre DNS completo con el hash DNL. Por ejemplo, si desea que su Dockerfile descendente haga referencia a un registro denominado contosoacrregistry con el ámbito DNL Tenant Reuse, deberá actualizar la referencia a contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io en su Dockerfile descendente.

Recorte de pantalla de la revisión de la opción Etiqueta de nombre de dominio y nombre DNS.

Configuración del modo de permisos de asignación de roles

Configure el "modo de permisos de asignación de roles" del nuevo registro. Esta opción determina cómo se administran el control de acceso basado en rol (RBAC) y las asignaciones de roles de Microsoft Entra para el registro, incluido el uso del control de acceso basado en atributos (ABAC) de Microsoft Entra para los permisos del repositorio de Microsoft Entra.

Elija "RBAC Registry + ABAC Repository Permissions" (Registro de RBAC y permisos de repositorio de ABAC de RBAC) para conservar las asignaciones de roles estándar de RBAC de Microsoft Entra, mientras que, opcionalmente, aplique las condiciones de Microsoft Entra ABAC para el control de acceso a nivel de repositorio específico.

Captura de pantalla de la configuración del modo de permisos de asignación de roles

Para obtener más información sobre esta opción, consulte Control de acceso basado en atributos (ABAC) de Microsoft Entra para permisos de repositorio.

Implementación del registro de contenedor

Acepte los valores predeterminados para la configuración restante. Después, seleccione Revisar y crear. Después de revisar la configuración, seleccione Crear.

Sugerencia

En este inicio rápido, creará un registro estándar , lo que es suficiente para la mayoría de los flujos de trabajo de Azure Container Registry. Elija otros niveles para aumentar el rendimiento de almacenamiento e imagen, y funcionalidades como la conexión mediante un punto de conexión privado. Para más información sobre los niveles de servicio disponibles (SKU), consulte SKU de Azure Container Registry.

Cuando aparezca el mensaje Implementación correcta, seleccione el registro de contenedor en el portal.

Información general del registro de contenedor en el portal

Anote el nombre del registro y el valor del Servidor de inicio de sesión, que es un nombre completo que termina en azurecr.io en la nube de Azure. Si seleccionó una opción DNL, el nombre del servidor de inicio de sesión incluirá un hash único.

Por favor, use el servidor de autenticación en los siguientes pasos al insertar y extraer imágenes con Docker, así como en referencias posteriores, como Dockerfiles, YAML de Kubernetes y charts de Helm.

Iniciar sesión en el registro

Antes de insertar y extraer imágenes de contenedor, debe iniciar sesión en la instancia del registro. Inicie sesión en la CLI de Azure en la máquina local y, a continuación, ejecute el comando az acr login.

Especifique solo el nombre del recurso del Registro al iniciar sesión con la CLI de Azure, como az acr login -n registryname. No use el nombre completo del servidor de inicio de sesión, como registryname.azurecr.io o registryname-hash.azurecr.io (para registros habilitados para DNL).

az acr login --name <registry-name>

Ejemplo:

az acr login --name contosoacrregistry

El comando devolverá Login Succeeded una vez completado.

Insertar la imagen en el registro

Para insertar una imagen en Azure Container Registry, primero debe tener una imagen. Si aún no tiene ninguna imagen de contenedor local, ejecute el siguiente comando docker pull para extraer una imagen pública existente. Para este ejemplo, extraiga la imagen hello-world desde Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

Para poder insertar una imagen en el registro, debe etiquetarla mediante la etiqueta docker con el nombre completo del servidor de inicio de sesión del registro.

  • El formato de nombre del servidor de inicio de sesión para los registros protegidos con etiqueta de nombre de dominio (DNL) con un hash de nombre DNS único incluido es mycontainerregistry-abc123.azurecr.io.
  • El formato de nombre del servidor de inicio de sesión para los registros creados con la Unsecure opción DNL es mycontainerregistry.azurecr.io.

Por ejemplo, si el registro se creó con el Tenant Reuse ámbito DNL, el servidor de inicio de sesión podría parecerse mycontainerregistry-abc123.azurecr.io con un hash en el nombre DNS. Si el registro se creó con la Unsecure opción DNL, el servidor de inicio de sesión tendría el aspecto mycontainerregistry.azurecr.io sin el hash.

Para obtener más información sobre las opciones de DNL durante la creación del registro y las implicaciones del nombre DNS, consulte Inicio rápido: Creación de un registro en el portal.

Ejemplo: Etiquetado de una imagen antes de empujar

Etiquete la imagen mediante el comando docker tag mediante el servidor de inicio de sesión del registro.

Etiquetado de la imagen para un registro que no es DNL:

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

Etiquetado de imagen para un registro con DNL habilitado

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

Por último, use el comando docker push para insertar la imagen en la instancia del registro. Reemplace <login-server> por el nombre del servidor de inicio de sesión de la instancia del registro. Este ejemplo crea el repositorio hello-world, que contiene la imagen hello-world:v1.

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

Después de insertar la imagen en el registro de contenedor, quite la imagen hello-world:v1 de su entorno de Docker local. (Tenga en cuenta que este comando de Docker rmi no quita la imagen del repositorio hello-world en el registro de contenedor de Azure).

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

Lista de imágenes de contenedor

Para mostrar las imágenes en el registro, vaya al registro en el portal, seleccione Repositorios y, después, seleccione el repositorio hello-world que creó con docker push.

Lista de imágenes de contenedor en el portal

Al seleccionar el repositorio hello-world, verá la imagen v1-tagged en Etiquetas.

Ejecución de la imagen del registro

Ahora, puede extraer y ejecutar la imagen de contenedor hello-world:v1 desde el registro de contenedor mediante docker run:

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

Salida de ejemplo:

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.

[...]

Limpieza de recursos

Para limpiar los recursos, vaya al grupo de recursos myResourceGroup en el portal. Una vez cargado el grupo de recursos, haga clic en Eliminar grupo de recursos para eliminar el grupo de recursos, el registro de contenedor y las imágenes de contenedor almacenadas allí.

Eliminación de un grupo de recursos en el portal

Pasos siguientes

En este inicio rápido, ha creado una instancia de Azure Container Registry con Azure Portal, ha insertado una imagen de contenedor y ha extraído y ejecutado la imagen del registro. Siga los tutoriales de Azure Container Registry para información más detallada de ACR.