Condividi tramite


Avvio rapido: Creare un'istanza di Registro Azure Container usando il portale di Azure

Registro Azure Container è un servizio registro privato per la creazione, l'archiviazione e la gestione delle immagini di contenitori e degli artefatti correlati. In questa Guida rapida è stata creata un'istanza di Registro Azure Container con il portale di Azure. Usare quindi i comandi di Docker per eseguire il push di un'immagine del contenitore nel registro e infine eseguire il pull ed eseguire l'immagine dal registro.

Per accedere al registro e usare immagini del contenitore, questa guida introduttiva richiede l'esecuzione dell'interfaccia della riga di comando di Azure (consigliata la versione 2.0.55 o successiva). Eseguire az --version per trovare la versione. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.

È anche necessario avere Docker installato localmente con il daemon in esecuzione. Docker offre pacchetti che consentono di configurare facilmente Docker in qualsiasi sistema Mac, Windows o Linux.

Accedere ad Azure

Accedere al portale di Azure.

Creare un registro contenitori

Selezionare Crea una risorsa>Contenitori>Registro Container.

Passare al registro contenitori nel portale

Configurare il nome e lo SKU del registro contenitori

Nella scheda Informazioni di base immettere i valori per Gruppo di risorse e Nome registro. Il nome del Registro di sistema deve essere univoco in Azure e contenere 5-50 caratteri alfanumerici, con caratteri trattini (-) non consentiti nel nome del Registro di sistema. Per questa guida introduttiva creare un nuovo gruppo di risorse nel West US 2 percorso denominato myResourceGroupe per SKU selezionare Standard.

Creare il registro contenitori nel portale

Per ulteriori informazioni sulle diverse opzioni di SKU, consultare il Registro Azure Container SKU.

Configura l'opzione Etichetta Nome di Dominio (DNL)

La funzionalità DNL (Domain Name Label) rafforza la sicurezza impedendo attacchi di acquisizione del sottodominio dei nomi DNS del Registro di sistema. Questi attacchi si verificano quando un registro viene eliminato e un'altra entità riutilizza lo stesso nome del registro, causando potenzialmente il recupero dei riferimenti downstream dal registro ricreato dall'altra entità.

DNL risolve questo problema aggiungendo un hash univoco al nome DNS del Registro di sistema. In questo modo, anche se lo stesso nome del Registro di sistema viene riutilizzato da un'altra entità, i nomi DNS saranno diversi a causa dell'hash univoco. In questo modo, i riferimenti downstream sono protetti dal puntare per errore al registro ricreato dall'altra entità.

Quando si crea un registro dal portale, selezionare l'ambito dell'etichetta del nome di dominio nelle opzioni disponibili:

  • Non sicuro: crea il nome DNS as-is, in base al nome del Registro di sistema (ad esempio, contosoacrregistry.azurecr.io). Questa opzione non include la protezione DNL.
  • Riutilizzo tenant: aggiunge un hash univoco in base al tenant e al nome del Registro di sistema, assicurando che il nome DNS sia univoco all'interno del tenant.
  • Riutilizzo sottoscrizione: aggiunge un hash univoco in base alla sottoscrizione, al tenant e al nome del Registro di sistema, assicurando che il nome DNS sia univoco all'interno della sottoscrizione.
  • Riutilizzo del gruppo di risorse: aggiunge un hash univoco in base al gruppo di risorse, alla sottoscrizione, al tenant e al nome del Registro di sistema, assicurando che il nome DNS sia univoco all'interno del gruppo di risorse.
  • Nessun riutilizzo: genera un nome DNS univoco con un hash univoco ogni volta che viene creato il Registro di sistema, indipendentemente da altri fattori, assicurando che il nome DNS sia sempre univoco.

Annotazioni

Configurazione non modificabile: l'ambito DNL selezionato durante la creazione del Registro di sistema è permanente e non può essere modificato in un secondo momento. Ciò garantisce un comportamento DNS coerente e impedisce interruzioni ai riferimenti downstream.

Configurare l'opzione Etichetta nome dominio

Implicazioni del nome DNS delle opzioni DNL

Formato nome DNS: per tutte le opzioni abilitate per DNL ad eccezione di Non sicuro, il nome DNS segue il formato registryname-hash.azurecr.io, dove il trattino (-) funge da delineatore hash. Per evitare conflitti, il trattino (-) non è consentito nel nome del Registro di sistema. Ad esempio, un registro denominato contosoacrregistry con ambito Tenant Reuse DNL avrà un nome DNS come contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io.

Riferimenti downstream: il nome DNS può differire dal nome del Registro di sistema, richiedendo aggiornamenti nei file downstream, ad esempio Dockerfile, YAML Kubernetes e grafici Helm per riflettere il nome DNS completo con l'hash DNL. Ad esempio, se si vuole che il Dockerfile downstream faccia riferimento a un registro denominato contosoacrregistry con l'ambito Tenant Reuse DNL, è necessario aggiornare il riferimento a contosoacrregistry-e7ggejfuhzhgedc8.azurecr.io nel Dockerfile downstream.

Screenshot della revisione dell'opzione Domain Name Label e del nome DNS.

Configurare la modalità di autorizzazioni per assegnare i ruoli

Configurare la "modalità delle autorizzazioni di assegnazione di ruoli" del nuovo registro. Questa opzione determina il modo in cui il controllo degli accessi in base al ruolo e le assegnazioni di ruolo (RBAC) di Microsoft Entra vengono gestite per il Registro di sistema, incluso l'uso del controllo degli accessi in base all'attributo Microsoft Entra (ABAC) per le autorizzazioni del repository Microsoft Entra.

Scegliere "RBAC Registry + ABAC Repository Permissions" per mantenere le assegnazioni di ruolo RBAC standard di Microsoft Entra, applicando facoltativamente le condizioni ABAC di Microsoft Entra per un controllo di accesso dettagliato a livello di repository.

Screenshot della modalità di configurazione delle autorizzazioni per l'assegnazione di ruolo

Per altre informazioni su questa opzione, vedere Microsoft Entra attribute-based access control (ABAC) per le autorizzazioni del repository.

Distribuire il registro dei container

Accettare i valori predefiniti per le impostazioni rimanenti. Selezionare quindi Rivedi e crea. Dopo aver esaminato le impostazioni, selezionare Crea.

Suggerimento

In questa guida introduttiva si crea un registro Standard , che è sufficiente per la maggior parte dei flussi di lavoro di Registro Azure Container. Scegliere altri livelli per aumentare la velocità effettiva di archiviazione e immagine e funzionalità, ad esempio la connessione usando un endpoint privato. Per informazioni dettagliate sui livelli di servizio (SKU) disponibili, vedere Livelli di servizio del registro contenitori.

Quando viene visualizzato il messaggio La distribuzione è riuscita, selezionare il registro contenitori nel portale.

Panoramica del registro contenitori nel portale

Prendere nota del nome del Registro di sistema e del valore del Server di accesso, che è un nome completo che termina con azurecr.io nel cloud di Azure. Se è stata selezionata un'opzione DNL, il nome del server di accesso includerà un hash univoco.

Usare il server di autenticazione nei passaggi seguenti quando si esegue il push e il pull delle immagini con Docker, nonché nei riferimenti successivi, ad esempio Dockerfiles, Kubernetes YAML e Helm charts.

Accedere al registro

Prima di eseguire il push e il pull delle immagini del contenitore, è necessario accedere all'istanza del registro. Accedere all'interfaccia della riga di comando di Azure nel computer locale e quindi eseguire il comando az acr login.

Specificare solo il nome della risorsa del Registro di sistema durante l'accesso con l'interfaccia della riga di comando di Azure, ad esempio az acr login -n registryname. Non usare il nome completo del server di accesso, ad esempio registryname.azurecr.io o registryname-hash.azurecr.io (per i registri abilitati a DNL).

az acr login --name <registry-name>

Esempio:

az acr login --name contosoacrregistry

Il comando restituisce Login Succeeded al termine dell'esecuzione.

Eseguire il push dell'immagine nel registro

Per eseguire il push di un'immagine in un'istanza di Registro Azure Container, è prima di tutto necessario che sia disponibile un'immagine. Se non si dispone ancora di immagini del contenitore locali, eseguire il comando docker pull seguente per eseguire il pull di un'immagine pubblica esistente. Per questo esempio, eseguire il pull dell'immagine hello-world da Registro Container Microsoft.

docker pull mcr.microsoft.com/hello-world

Prima di poter eseguire il push di un'immagine nel registro, è necessario contrassegnarla usando il tag Docker con il nome completo del server di accesso del Registro di sistema.

  • Il formato del nome del server di accesso per i registri protetti DNL (Domain Name Label) con un hash del nome DNS univoco incluso è mycontainerregistry-abc123.azurecr.io.
  • Il formato del nome del server di accesso per i registri creati con l'opzione Unsecure DNL è mycontainerregistry.azurecr.io.

Ad esempio, se il registro è stato creato con l'ambito Tenant Reuse DNL, il server di login potrebbe assomigliare a mycontainerregistry-abc123.azurecr.io con un hash nel nome DNS. Se il registro è stato creato con l'opzione Unsecure DNL, il server di accesso apparirebbe come mycontainerregistry.azurecr.io senza l'hash.

Per altre informazioni sulle opzioni DNL durante la creazione del Registro di sistema e sulle implicazioni del nome DNS, vedere Avvio rapido - Creare un registro nel portale.

Esempio: Assegnazione di tag a un'immagine prima del push

Contrassegna l'immagine usando il comando docker tag usando il server di accesso del Registro di sistema.

Assegnazione di tag all'immagine per un registro non DNL:

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

Assegnazione di tag all'immagine per un registro abilitato per DNL:

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

Usare infine docker push per eseguire il push dell'immagine nell'istanza del registro. Sostituire <login-server> con il nome del server di accesso dell'istanza del registro. Questo esempio crea il repository hello-world che contiene l'immagine hello-world:v1.

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

Dopo il push dell'immagine nel registro contenitori, rimuovere l'immagine hello-world:v1 dall'ambiente Docker locale. Si noti che questo comando docker rmi non rimuove l'immagine dal repository hello-world nel registro Contenitori di Azure.

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

Elencare le immagini del contenitore

Per elencare le immagini presenti nel registro, passare al registro nel portale, scegliere Repository e quindi selezionare il repository hello-world creato con docker push.

Elencare le immagini del contenitore nel portale

Se si seleziona il repository hello-world, l'immagine con tag v1 viene visualizzata in Tag.

Eseguire un'immagine dal registro

È possibile ora effettuare il pull ed eseguire l'immagine del contenitore hello-world:v1 dal registro contenitori usando docker run:

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

Output di esempio:

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.

[...]

Pulire le risorse

Per pulire le risorse, passare al gruppo di risorse myResourceGroup nel portale. Dopo aver caricato il gruppo di risorse, fare clic su Elimina gruppo di risorse per rimuovere il gruppo di risorse, il registro contenitori e le immagini del contenitore archiviate nel registro.

Eliminare il gruppo di risorse nel portale

Passaggi successivi

In questa guida di avvio rapido è stata creata un'istanza di Registro Azure Container con il portale di Azure, è stato eseguito il push di un'immagine del contenitore e quindi è stato eseguito il pull per eseguire l'immagine dal registro. Per maggiori informazioni su Registro Azure Container, passare alle relative esercitazioni.