Guida introduttiva: creare un registro contenitori privato usando Azure PowerShell

Registro Azure Container è un servizio registro privato per la creazione, l'archiviazione e la gestione delle immagini del contenitore e degli artefatti correlati. In questa guida introduttiva si crea un'istanza del Registro Azure Container con Azure PowerShell. 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.

Prerequisiti

Nota

È consigliabile usare il modulo Azure Az PowerShell per interagire con Azure. Per iniziare, vedere Installare Azure PowerShell. Per informazioni su come eseguire la migrazione al modulo AZ PowerShell, vedere Eseguire la migrazione di Azure PowerShell da AzureRM ad Az.

Per questa guida introduttiva è richiesto il modulo Azure PowerShell. Per determinare la versione installata eseguire Get-Module -ListAvailable Az. Se è necessario eseguire l'installazione o l'aggiornamento, vedere come installare il modulo Azure PowerShell.

È anche necessario avere Docker installato localmente. Docker offre pacchetti per i sistemi macOS, Windows e Linux.

Poiché Azure Cloud Shell non include tutti i componenti di Docker necessari, ovvero il daemon dockerd, non è possibile usare Cloud Shell lo per questa guida rapida.

Accedere ad Azure

Accedere alla propria sottoscrizione di Azure con il comando Connect-AzAccount e seguire le istruzioni visualizzate.

Connect-AzAccount

Creare un gruppo di risorse

Dopo aver eseguito l'autenticazione con Azure, creare un gruppo di risorse con il comando New-AzResourceGroup. Un gruppo di risorse è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.

New-AzResourceGroup -Name myResourceGroup -Location EastUS

Creare un registro contenitori

Successivamente creare un registro contenitori nel nuovo gruppo di risorse con il comando New-AzContainerRegistry.

Il nome del registro deve essere univoco in Azure e contenere da 5 a 50 caratteri alfanumerici. Nell'esempio seguente viene creato un registro denominato "mycontainerregistry". Sostituire mycontainerregistry nel comando seguente, quindi eseguirlo per creare il Registro di sistema:

$registry = New-AzContainerRegistry -ResourceGroupName "myResourceGroup" -Name "mycontainerregistry" -EnableAdminUser -Sku Basic

Suggerimento

In questa guida introduttiva si crea un Registro di sistema Basic, che è un'opzione ottimizzata per i costi per gli sviluppatori che apprende Registro Azure Container. Scegliere altri livelli per aumentare la velocità effettiva di archiviazione e immagine e funzionalità, ad esempio la connessione tramite un endpoint privato. Per informazioni dettagliate sui livelli di servizio (SKU) disponibili, vedere Livelli di servizio del registro contenitori.

Accedere al registro

Prima di eseguire il push e il pull delle immagini del contenitore, è necessario accedere al registro con il cmdlet Connect-AzContainerRegistry . L'esempio seguente usa le stesse credenziali con cui è stato eseguito l'accesso durante l'autenticazione in Azure con il Connect-AzAccount cmdlet .

Nota

Nell'esempio seguente il valore di è il nome della $registry.Name risorsa, non il nome completo del Registro di sistema.

Connect-AzContainerRegistry -Name $registry.Name

Il comando restituisce Login Succeeded al termine dell'esecuzione.

Eseguire il push dell'immagine nel registro

Per eseguire il push di un'immagine in Registro Azure Container è necessario innanzitutto disporre di un'immagine. Se non si dispone ancora di immagini del contenitore locale, 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 Azure Container.

docker pull mcr.microsoft.com/hello-world

Prima di poter eseguire il push di un'immagine nel registro, è necessario contrassegnarla con il nome completo del server di accesso al registro. Il nome del server di accesso è nel formato <registry-name.azurecr.io> (deve essere tutto minuscolo), ad esempio mycontainerregistry.azurecr.io.

Contrassegnare l'immagine usando il comando docker tag. Sostituire <login-server> con il nome del server di accesso dell'istanza del record di controllo di accesso.

docker tag mcr.microsoft.com/hello-world <login-server>/hello-world:v1

Esempio:

docker tag mcr.microsoft.com/hello-world mycontainerregistry.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

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

Dopo avere usato le risorse create in questa guida di avvio rapido, usare il comando Remove-AzResourceGroup per rimuovere il gruppo di risorse, il registro contenitori e le immagini del contenitore archiviate in tale registro:

Remove-AzResourceGroup -Name myResourceGroup

Passaggi successivi

In questa guida introduttiva è stata creata un'istanza di Registro Azure Container con Azure PowerShell, è 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.