Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
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.
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 myResourceGroup
e per SKU selezionare Standard
.
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.
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.
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.
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.
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
.
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.
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.