Avvio rapido: Creare un registro contenitori privato usando l'interfaccia della riga di comando di Azure

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 l'interfaccia della riga di comando 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.

Questa guida di avvio rapido richiede l'esecuzione dell'interfaccia della riga di comando di Azure (consigliata la versione 2.0.55 o successive). 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. Docker offre pacchetti che consentono di configurare facilmente Docker in qualsiasi sistema macOS, Windows o 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.

Creare un gruppo di risorse

Creare un gruppo di risorse con il comando az group create. Un gruppo di risorse di Azure è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite.

L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.

az group create --name myResourceGroup --location eastus

Creare un registro contenitori

In questa guida di avvio rapido viene creato un registro Basic, ovvero un'opzione ottimizzata in termini di costo per sviluppatori che iniziano a usare Registro Azure Container. Per informazioni dettagliate sui livelli di servizio disponibili, vedere Livelli di servizio del registro contenitori.

Creare un'istanza di Registro Azure Container usando il comando azure acr create. Il nome del Registro di sistema deve essere univoco in Azure e contenere 5-50 caratteri alfanumerici minuscoli. Nell'esempio seguente viene usato mycontainerregistry . Aggiornarlo a un valore univoco.

az acr create --resource-group myResourceGroup \
  --name mycontainerregistry --sku Basic

Quando viene creato il registro, l'output è simile al seguente:

{
  "adminUserEnabled": false,
  "creationDate": "2019-01-08T22:32:13.175925+00:00",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry",
  "location": "eastus",
  "loginServer": "mycontainerregistry.azurecr.io",
  "name": "mycontainerregistry",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Prendere nota del valore di loginServer nell'output, che corrisponde al nome del registro completo (tutto minuscolo). Nella parte restante di questa guida di avvio rapido, <registry-name> è un segnaposto per il nome del registro contenitori e <login-server> è un segnaposto per il nome del server di accesso del registro.

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. A tale scopo usare 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. Non usare il nome completo del server di accesso.

az acr login --name <registry-name>

Esempio:

az acr login --name mycontainerregistry

Il comando restituisce un messaggio 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

Elencare le immagini del contenitore

L'esempio seguente elenca i repository presenti nel registro:

az acr repository list --name <registry-name> --output table

Output:

Result
----------------
hello-world

L'esempio seguente elenca i tag nel repository hello-world.

az acr repository show-tags --name <registry-name> --repository hello-world --output table

Output:

Result
--------
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

Quando il gruppo di risorse, il registro contenitori e le immagini del contenitore in esso archiviate non sono più necessari, è possibile usare il comando az group delete per rimuoverli.

az group delete --name myResourceGroup

Passaggi successivi

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