Procedimientos recomendados para Azure Container RegistryBest practices for Azure Container Registry

Si sigue estos procedimientos recomendados, puede ayudar a maximizar el rendimiento y rentabilizar el uso del registro de Docker privado en Azure.By following these best practices, you can help maximize the performance and cost-effective use of your private Docker registry in Azure.

Vea también Recomendaciones para el etiquetado y el control de versiones de las imágenes de contenedor para las estrategias de etiquetado y versión de las imágenes en el registro.See also Recommendations for tagging and versioning container images for strategies to tag and version images in your registry.

Implementación cercana a la redNetwork-close deployment

Cree el registro de contenedor en la misma región de Azure en la que implementa los contenedores.Create your container registry in the same Azure region in which you deploy containers. Colocar el registro en una región que esté cercana a la red para los hosts del contenedor puede ayudar a reducir tanto la latencia como el costo.Placing your registry in a region that is network-close to your container hosts can help lower both latency and cost.

La implementación cercana a la red es una de las razones principales para utilizar un registro de contenedor privado.Network-close deployment is one of the primary reasons for using a private container registry. Las imágenes de Docker tienen una construcción en capas eficaz que permite realizar implementaciones incrementales.Docker images have an efficient layering construct that allows for incremental deployments. Sin embargo, los nuevos nodos tienen que extraer todas las capas necesarias para una imagen determinada.However, new nodes need to pull all layers required for a given image. Este docker pull inicial puede agregar rápidamente hasta varios gigabytes.This initial docker pull can quickly add up to multiple gigabytes. Tener un registro privado próximo a la implementación minimiza la latencia de red.Having a private registry close to your deployment minimizes the network latency. Además, todas las nubes públicas, Azure incluido, implementan cuotas de salida de red.Additionally, all public clouds, Azure included, implement network egress fees. La extracción de imágenes desde un centro de datos a otro agrega cuotas de salida de red, además de latencia.Pulling images from one datacenter to another adds network egress fees, in addition to the latency.

Implementación de la replicación geográfica en varias regionesGeo-replicate multi-region deployments

Utilice la característica de replicación geográfica de Azure Container Registry si está implementando contenedores en varias regiones.Use Azure Container Registry's geo-replication feature if you're deploying containers to multiple regions. Si se está prestando servicio a clientes globales de centros de datos locales o su equipo de desarrollo se encuentra en distintas ubicaciones, puede simplificar la administración del registro y minimizar la latencia mediante la replicación geográfica del registro.Whether you're serving global customers from local data centers or your development team is in different locations, you can simplify registry management and minimize latency by geo-replicating your registry. La replicación geográfica solo está disponible con los registros Premium.Geo-replication is available only with Premium registries.

Para aprender a usar la replicación geográfica, vea el tutorial de tres partes Geo-replication in Azure Container Registry (Replicación geográfica en Azure Container Registry).To learn how to use geo-replication, see the three-part tutorial, Geo-replication in Azure Container Registry.

Espacios de nombres del repositorioRepository namespaces

Al aprovechar los espacios de nombres del repositorio, puede permitir el uso compartido de un registro único por varios grupos dentro de su organización.By leveraging repository namespaces, you can allow sharing a single registry across multiple groups within your organization. Los registros se pueden compartir por las implementaciones y los equipos.Registries can be shared across deployments and teams. Azure Container Registry admite espacios de nombres anidados, lo que permite el aislamiento del grupo.Azure Container Registry supports nested namespaces, enabling group isolation.

Por ejemplo, considere las siguientes etiquetas de imagen de contenedor.For example, consider the following container image tags. Las imágenes que se usan en toda la organización, como aspnetcore, se colocan en el espacio de nombres raíz, mientras que las imágenes de contenedor que pertenecen a los grupos de producción y marketing usan sus propios espacios de nombres.Images that are used corporate-wide, like aspnetcore, are placed in the root namespace, while container images owned by the Products and Marketing groups each use their own namespaces.

  • contoso.azurecr.io/aspnetcore:2.0contoso.azurecr.io/aspnetcore:2.0
  • contoso.azurecr.io/products/widget/web:1contoso.azurecr.io/products/widget/web:1
  • contoso.azurecr.io/products/bettermousetrap/refundapi:12.3contoso.azurecr.io/products/bettermousetrap/refundapi:12.3
  • contoso.azurecr.io/marketing/2017-fall/concertpromotions/campaign:218.42contoso.azurecr.io/marketing/2017-fall/concertpromotions/campaign:218.42

Grupo de recursos dedicadoDedicated resource group

Dado que los registros de contenedor son recursos que se utilizan en varios hosts de contenedor, un registro debe residir en su propio grupo de recursos.Because container registries are resources that are used across multiple container hosts, a registry should reside in its own resource group.

Aunque puede experimentar con un tipo de host específico, como Azure Container Instances, es probable que desee eliminar la instancia del contenedor cuando haya terminado.Although you might experiment with a specific host type, such as Azure Container Instances, you'll likely want to delete the container instance when you're done. Sin embargo, también puede mantener la colección de imágenes que ha insertado en Azure Container Registry.However, you might also want to keep the collection of images you pushed to Azure Container Registry. Al colocar el registro en su propio grupo de recursos, se minimiza el riesgo de eliminar de manera accidental la colección de imágenes del registro cuando se elimina el grupo de recursos de la instancia de contenedor.By placing your registry in its own resource group, you minimize the risk of accidentally deleting the collection of images in the registry when you delete the container instance resource group.

AuthenticationAuthentication

Al autenticar con un registro de contenedor de Azure, hay dos escenarios principales: la autenticación individual y la autenticación de servicio (o "sin periféricos").When authenticating with an Azure container registry, there are two primary scenarios: individual authentication, and service (or "headless") authentication. En la tabla siguiente se proporciona una breve descripción de estos escenarios y el método recomendado de autenticación para cada uno.The following table provides a brief overview of these scenarios, and the recommended method of authentication for each.

TipoType Escenario de ejemploExample scenario Método recomendadoRecommended method
Identidad individualIndividual identity Un desarrollador que extrae imágenes de su máquina de desarrollo, o las inserta en ella.A developer pulling images to or pushing images from their development machine. az acr loginaz acr login
Identidad de servicio o sin periféricosHeadless/service identity Canalizaciones de compilación e implementación donde el usuario no está directamente implicado.Build and deployment pipelines where the user isn't directly involved. Entidad de servicioService principal

Para obtener información detallada acerca de la autenticación de Azure Container Registry, consulte Autenticación con un registro de contenedor privado de Docker.For in-depth information about Azure Container Registry authentication, see Authenticate with an Azure container registry.

Administración del tamaño del registroManage registry size

Las restricciones de almacenamiento de cada nivel de servicio del registro de contenedor están diseñadas para adaptarse a un escenario típico: Básico para los primeros pasos, Estándar para la mayoría de las aplicaciones de producción, y Premium para un rendimiento a gran escala y con replicación geográfica.The storage constraints of each container registry service tier are intended to align with a typical scenario: Basic for getting started, Standard for the majority of production applications, and Premium for hyper-scale performance and geo-replication. Durante todo el ciclo de vida del registro, debe administrar su tamaño mediante la eliminación periódica del contenido sin usar.Throughout the life of your registry, you should manage its size by periodically deleting unused content.

Use el comando az acr show-usage de la CLI de Azure para mostrar el tamaño actual del registro:Use the Azure CLI command az acr show-usage to display the current size of your registry:

az acr show-usage --resource-group myResourceGroup --name myregistry --output table
NAME      LIMIT         CURRENT VALUE    UNIT
--------  ------------  ---------------  ------
Size      536870912000  185444288        Bytes
Webhooks  100                            Count

También puede encontrar el almacenamiento actual usado en Información general del registro en Azure Portal:You can also find the current storage used in the Overview of your registry in the Azure portal:

Información del uso del registro en Azure Portal

Eliminación de los datos de la imagenDelete image data

Azure Container Registry admite varios métodos para eliminar datos de imagen del registro de contenedor.Azure Container Registry supports several methods for deleting image data from your container registry. Puede eliminar imágenes por etiqueta o síntesis de manifiesto o eliminar un repositorio entero.You can delete images by tag or manifest digest, or delete a whole repository.

Para más información sobre cómo eliminar datos de imagen del registro, como imágenes no etiquetadas (a veces llamadas "pendientes" o "huérfanas"), consulte Eliminación de imágenes de contenedor en Azure Container Registry.For details on deleting image data from your registry, including untagged (sometimes called "dangling" or "orphaned") images, see Delete container images in Azure Container Registry.

Pasos siguientesNext steps

Azure Container Registry está disponible en varios niveles (también denominados SKU), y cada uno de ellos proporciona distintas funcionalidades.Azure Container Registry is available in several tiers (also called SKUs) that each provide different capabilities. Para obtener más información sobre los niveles de servicio disponibles, consulte SKU de Azure Container Registry.For details on the available service tiers, see Azure Container Registry service tiers.