Guida: Creare un Registro Azure Container e compilare immagini

Registro Azure Container (ACR) è un registro privato per le immagini del contenitore. Un registro contenitori privato consente di compilare e distribuire le applicazioni e il codice personalizzato in modo sicuro.

In questa esercitazione, si distribuisce un'istanza di Registro Azure Container, in cui si esegue il push di un'immagine del contenitore. Si apprenderà come:

  • Creare un'istanza di Registro Azure Container.
  • Usare Attività di Registro Azure Container per creare ed eseguire il push di immagini del contenitore in Registro Azure Container.
  • Visualizzare le immagini nel registro.

Prima di iniziare

Nell'esercitazione precedente, è stato clonato il repository del codice dell'applicazione ed è stato usato Docker per creare un'immagine del contenitore per una semplice applicazione Azure Store Front. Se non hai creato l'immagine dell'applicazione Azure Store Front, torna a Tutorial 1 - Preparare un'applicazione per AKS.

Questa esercitazione crea risorse di Azure fatturabili, incluse un gruppo di risorse e un Registro Azure Container. Per completare questi passaggi, sono necessarie le autorizzazioni per creare gruppi di risorse e Registro Azure Container risorse nella sottoscrizione, ad esempio Collaboratore o Proprietario.

Questa esercitazione richiede interfaccia della riga di comando di Azure versione 2.0.53 o successiva. Per trovare la versione, eseguire il comando az --version. Se è necessario installare o aggiornare, vedere Installare interfaccia della riga di comando di Azure.

Creare un Registro Azure Container

Prima di creare un'istanza di Registro Azure Container, è necessario un gruppo di risorse. Un gruppo di risorse Azure è un contenitore logico in cui si distribuiscono e si gestiscono le risorse Azure.

  1. Creare variabili per il nome del gruppo di risorse, la posizione e il nome del registro. È possibile usare questi valori o crearne uno personalizzato. Il valore della variabile del nome del Registro di sistema archiviato in ACRNAME deve essere univoco all'interno di Azure e contenere 5-50 caratteri alfanumerici minuscoli.

    export RESOURCE_GROUP=myResourceGroup
    export LOCATION=westus2
    export RANDOM_STRING=$(printf '%05d%05d' "$RANDOM" "$RANDOM")
    export ACRNAME="myregistry${RANDOM_STRING}"
    

    Il valore della variabile del nome del Registro di sistema archiviato in ACRNAME deve essere univoco all'interno di Azure e contenere 5-50 caratteri alfanumerici minuscoli. Il ACRNAME valore viene concatenato con la RANDOM_STRING variabile che archivia una stringa casuale di 10 cifre per garantire che il nome del Registro di sistema sia univoco. Variabile RESOURCE_GROUP con il valore myResourceGroup per il gruppo di risorse e LOCATION con il valore westus2. È possibile usare questi valori o crearne uno personalizzato.

  2. Creare un gruppo di risorse usando il comando az group create.

    az group create --name $RESOURCE_GROUP --location $LOCATION
    
  3. Creare un'istanza di ACR usando il cmdlet New-AzContainerRegistry e specificando un nome univoco per il registro. Lo SKU Basic è un punto di ingresso con costi ottimali a fini di sviluppo, che assicura l'equilibrio tra spazio di archiviazione e velocità effettiva.

    az group show --name $RESOURCE_GROUP --query name --output tsv
    
  4. Creare un'istanza del Registro Azure Container usando il comando az acr create e specificare il proprio nome univoco del Registro di sistema. Lo SKU Basic è un punto di ingresso con costi ottimali a fini di sviluppo, che assicura l'equilibrio tra spazio di archiviazione e velocità effettiva.

    az acr create \
      --resource-group $RESOURCE_GROUP \
      --location $LOCATION \
      --name $ACRNAME \
      --sku Basic
    

    Verificare che lo stato di provisioning del registro sia Succeeded prima di continuare:

    az acr show --name $ACRNAME --resource-group $RESOURCE_GROUP --query provisioningState --output tsv
    

Compilare ed eseguire il push di immagini del contenitore nel Registro di sistema

Compilare ed eseguire il push delle immagini nel Registro Container di Azure usando il comando Interfaccia della riga di comando di Azure az acr build. I az acr build comandi usano immagini nel repository clonato nell'articolo precedente preparare un'app per AKS. Assicurati di passare a tale directory o i build comandi non funzioneranno. Ad esempio, se è stata creata la directory demorepo e clonato il repository, la directory radice del repository è aks-store-demo, quindi passa alla directory demorepo/aks-store-demo.

Prima di eseguire i comandi di compilazione, verificare che la directory corrente contenga le cartelle del servizio previste:

ls ./src/order-service ./src/store-front

Non esiste un cmdlet Azure PowerShell equivalente che compila o esegue il push delle immagini del contenitore nel registro. È necessario usare i passaggi per interfaccia della riga di comando di Azure, ma con la variabile ACRNAME impostata sul valore creato in PowerShell. In PowerShell è possibile ottenere il valore con il comando $ACRNAME.

Nell'esempio seguente non viene compilata l'immagine product-service. Questa immagine può richiedere molto tempo per la compilazione ed è già disponibile un'immagine del contenitore nel registro contenitori GitHub (GHCR). È possibile usare il comando az acr import per importare l'immagine da GHCR alla propria istanza di ACR. Non costruiamo neanche l'immagine rabbitmq. Questa immagine è disponibile nel repository pubblico Docker Hub e non deve essere creata o inserita nell'istanza di Azure Container Registry.

az acr import \
  --name $ACRNAME \
  --source ghcr.io/azure-samples/aks-store-demo/product-service:latest \
  --image aks-store-demo/product-service:1.0

az acr build \
  --registry $ACRNAME \
  --image aks-store-demo/order-service:1.0 ./src/order-service/

az acr build \
  --registry $ACRNAME \
  --image aks-store-demo/store-front:1.0 ./src/store-front/

Se viene visualizzato un errore di autorizzazione, eseguire az login, confermare la sottoscrizione attiva con az account showe quindi eseguire di nuovo il comando non riuscito.

Elencare le immagini nel registro

Visualizzare le immagini nell'istanza di Registro Azure Container usando il comando az acr repository list.

az acr repository list --name $ACRNAME --output table

L'output di esempio seguente elenca le immagini disponibili nel registro:

Result
----------------
aks-store-demo/product-service
aks-store-demo/order-service
aks-store-demo/store-front

Passaggi successivi

In questa esercitazione è stato creato un Registro Azure Container ed è stato eseguito il push delle immagini per usarlo in un cluster del servizio Azure Kubernetes. Si è appreso come:

  • Creare un'istanza di Registro Azure Container.
  • Usare Attività di Registro Azure Container per creare ed eseguire il push di immagini del contenitore in Registro Azure Container.
  • Visualizzare le immagini nel registro.

Nell'esercitazione successiva si apprenderà come distribuire un cluster Kubernetes in Azure.