Procedure consigliate per Registro Azure ContainerBest practices for Azure Container Registry

Seguendo queste procedure consigliate, è possibile contribuire a sfruttare al massimo le prestazioni e la convenienza del Registro contenitori privato Docker in Azure.By following these best practices, you can help maximize the performance and cost-effective use of your private Docker registry in Azure.

Vedere anche Suggerimenti per l'assegnazione di tag e il controllo delle versioni delle immagini del contenitore per strategie per le immagini tag e versione nel registro di sistema.See also Recommendations for tagging and versioning container images for strategies to tag and version images in your registry.

Distribuzione in reti vicineNetwork-close deployment

Creare il registro contenitori nella stessa area di Azure in cui vengono distribuiti i contenitori.Create your container registry in the same Azure region in which you deploy containers. La collocazione del Registro in un'area di rete vicina ai propri host contenitori può ridurre la latenza e i costi.Placing your registry in a region that is network-close to your container hosts can help lower both latency and cost.

La distribuzione in reti vicine è una delle ragioni principali per cui si usa un registro contenitori privato.Network-close deployment is one of the primary reasons for using a private container registry. Le immagini di Docker hanno un efficiente costrutto di livelli che consente la distribuzione incrementale.Docker images have an efficient layering construct that allows for incremental deployments. Tuttavia, è necessario che nuovi nodi eseguano il pull di tutti i livelli richiesti per una data immagine.However, new nodes need to pull all layers required for a given image. Questo docker pull iniziale si può rapidamente aggiungere a più gigabyte.This initial docker pull can quickly add up to multiple gigabytes. Avere un registro contenitori privato vicino alla propria distribuzione riduce al minimo la latenza di rete.Having a private registry close to your deployment minimizes the network latency. In aggiunta, tutti i cloud pubblici, Azure incluso, implementano i corrispettivi per il traffico di rete in uscita.Additionally, all public clouds, Azure included, implement network egress fees. Il pull di immagini da un data center a un altro aggiunge corrispettivi di rete in uscita e latenza.Pulling images from one datacenter to another adds network egress fees, in addition to the latency.

Eseguire la replica geografica della distribuzione in più areeGeo-replicate multi-region deployments

Usare la funzione replica geografica di Registro Azure Container se si distribuiscono contenitori a più aree.Use Azure Container Registry's geo-replication feature if you're deploying containers to multiple regions. Se si servono clienti globali da data center locali o il proprio team di sviluppo è in più posizioni, è possibile semplificare la gestione del registro e ridurre al minimo la latenza eseguendo la replica geografica del proprio 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 replica geografica è disponibile solo con registri Premium.Geo-replication is available only with Premium registries.

Per capire come usare la replica geografica, vedere il tutorial in tre parti Preparare un'istanza di Registro Azure Container con replica geografica.To learn how to use geo-replication, see the three-part tutorial, Geo-replication in Azure Container Registry.

Spazi dei nomi dell'archivioRepository namespaces

Con l'uso di spazi dei nomi dell'archivio, è possibile consentire la condivisione di un singolo registro in più gruppi all'interno dell'organizzazione.By leveraging repository namespaces, you can allow sharing a single registry across multiple groups within your organization. I registri possono essere condivisi tra le distribuzioni e i team.Registries can be shared across deployments and teams. Registro Azure Container supporta spazi dei nomi annidati, abilitando l'isolamento in gruppo.Azure Container Registry supports nested namespaces, enabling group isolation.

Si considerino ad esempio i tag delle immagini del contenitore seguenti:For example, consider the following container image tags. Le immagini utilizzate a livello aziendale, ad esempio aspnetcore, vengono inserite nello spazio dei nomi radice, mentre le immagini del contenitore di proprietà dei prodotti e dei gruppi marketing utilizzano i propri spazi dei nomi.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.0
contoso.azurecr.io/products/widget/web:1
contoso.azurecr.io/products/bettermousetrap/refundapi:12.3
contoso.azurecr.io/marketing/2017-fall/concertpromotions/campaign:218.42

Gruppo di risorse dedicatoDedicated resource group

Poiché i registri contenitori sono risorse usate in più host contenitori, un registro deve trovarsi nel relativo gruppo di risorse.Because container registries are resources that are used across multiple container hosts, a registry should reside in its own resource group.

Anche se è possibile provare con un tipo di host specifico, come le Istanze di Azure Container, probabilmente al termine si vorrà eliminare l'istanza del contenitore.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. Tuttavia, è anche possibile mantenere la raccolta di immagini inserita in Registro Azure Container.However, you might also want to keep the collection of images you pushed to Azure Container Registry. Posizionando il registro nel suo gruppo di risorse, si riduce al minimo il rischio di eliminare accidentalmente la raccolta di immagini nel registro quando si elimina il gruppo di risorse delle istanze del contenitore.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.

AutenticazioneAuthentication

Quando si esegue l'autenticazione con Registro Azure Container, esistono due scenari principali: autenticazione singola e autenticazione di servizio (o "headless").When authenticating with an Azure container registry, there are two primary scenarios: individual authentication, and service (or "headless") authentication. La tabella seguente fornisce una breve panoramica di questi scenari e il metodo di autenticazione consigliato per ognuno.The following table provides a brief overview of these scenarios, and the recommended method of authentication for each.

TipoType Scenario di esempioExample scenario Metodo consigliatoRecommended method
Identità singolaIndividual identity Uno sviluppatore che esegue il pull o il push di immagini dal computer di sviluppo.A developer pulling images to or pushing images from their development machine. az acr loginaz acr login
Identità headless/del servizioHeadless/service identity Pipeline di compilazione e distribuzione in cui l'utente non è direttamente coinvolto.Build and deployment pipelines where the user isn't directly involved. Entità servizioService principal

Per informazioni dettagliate sull'autenticazione a Registro Azure Container, vedere Eseguire l'autenticazione con un registro contenitori Docker privato.For in-depth information about Azure Container Registry authentication, see Authenticate with an Azure container registry.

Gestire le dimensioni del registroManage registry size

I vincoli di archiviazione di ogni SKU del registro contenitori hanno lo scopo di allinearsi con uno scenario tipico: Basic per iniziare, standard per la maggior parte delle applicazioni di produzione e Premium per le prestazioni con iperscalabilità e la replica geografica.The storage constraints of each container registry SKU 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. Per tutta la durata del registro, è necessario gestirne le dimensioni eliminando periodicamente il contenuto non usato.Throughout the life of your registry, you should manage its size by periodically deleting unused content.

Usare il comando dell'interfaccia della riga di comando di Azure AZ ACR Show-Usage per visualizzare le dimensioni correnti del registro di sistema: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

È anche possibile trovare la risorsa di archiviazione corrente usata nella sezione Panoramica del registro nel portale di Azure:You can also find the current storage used in the Overview of your registry in the Azure portal:

Informazioni sull'uso del registro nel portale di Azure

Eliminare i dati di immaginiDelete image data

Registro Azure Container supporta diversi metodi per l'eliminazione di dati di immagini dal registro contenitori.Azure Container Registry supports several methods for deleting image data from your container registry. È possibile eliminare le immagini in base al tag o al digest del manifesto oppure eliminare un intero repository.You can delete images by tag or manifest digest, or delete a whole repository.

Per informazioni dettagliate sull'eliminazione dei dati di immagini dal registro, tra cui immagini senza tag (a volte indicate come "tralasciate" o "orfane"), vedere Eliminare le immagini del contenitore in Registro Azure Container.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.

Passaggi successiviNext steps

Registro Azure Container è disponibile in più livelli, chiamati SKU, ognuno dei quali fornisce funzionalità diverse.Azure Container Registry is available in several tiers, called SKUs, that each provide different capabilities. Per informazioni dettagliate sui livelli SKU disponibili, vedere SKU di Registro Azure Container.For details on the available SKUs, see Azure Container Registry SKUs.