Esercitazione: Creare un registro Azure Container ed eseguire il push di un'immagine del contenitore
Questo articolo è la seconda parte di un'esercitazione in tre parti. Nella prima parte dell'esercitazione è stata creata un'immagine del contenitore Docker per un'applicazione Web Node.js. In questa esercitazione si esegue il push dell'immagine in Registro Azure Container. Se è necessario creare l'immagine del contenitore, tornare all'esercitazione 1 - Creare un'immagine del contenitore.
Registro Azure Container è il registro Docker privato in Azure. In questa esercitazione, la seconda della serie, vengono illustrate le attività seguenti:
- Creare un'istanza di Registro Azure Container usando l'interfaccia della riga di comando di Azure
- Assegnare un tag all'immagine del contenitore per il Registro Azure Container
- Caricare l'immagine nel registro
Nell'articolo successivo, che corrisponde all'ultimo della serie, il contenitore viene distribuito dal registro privato a Istanze di Azure Container.
Operazioni preliminari
Per completare questa esercitazione, è necessario soddisfare i requisiti seguenti:
Interfaccia della riga di comando di Azure: è necessario che nel computer locale sia installata la versione 2.0.29 o successiva dell'interfaccia della riga di comando di Azure. Per trovare la versione, eseguire az --version
. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure.
Docker: questa esercitazione presuppone una conoscenza di base dei concetti principali di Docker, come contenitori, immagini dei contenitore e comandi essenziali di docker
. Per una panoramica dei concetti fondamentali relativi a Docker e ai contenitori, vedere Docker overview (Panoramica di Docker).
Docker: per completare questa esercitazione, è necessario aver installato Docker localmente. Docker offre pacchetti per la configurazione dell'ambiente Docker in macOS, Windows e Linux.
Importante
Poiché Azure Cloud Shell non include il daemon Docker, per completare questa esercitazione è necessario installare nel computer locale sia l'interfaccia della riga di comando di Azure che il motore Docker. Per questa esercitazione non è possibile usare Azure Cloud Shell.
Creare un'istanza di Registro Azure Container
Prima di creare il registro contenitori, è necessario un gruppo di risorse in cui eseguirne la distribuzione. Un gruppo di risorse è una raccolta logica in cui vengono distribuite e gestite tutte le risorse di Azure.
Creare un gruppo di risorse con il comando az group create. Nell'esempio seguente viene creato un gruppo di risorse denominato myResourceGroup nell'area eastus:
az group create --name myResourceGroup --location eastus
Dopo aver creato il gruppo di risorse, creare un registro Azure Container con il comando az acr create . Il nome del registro contenitori deve essere univoco in Azure e contenere da 5 a 50 caratteri alfanumerici. Sostituire <acrName>
con un nome univoco per il registro:
az acr create --resource-group myResourceGroup --name <acrName> --sku Basic
Ecco l'output parziale per una nuova istanza di Registro Azure Container denominata mycontainerregistry082:
{
"creationDate": "2020-07-16T21:54:47.297875+00:00",
"id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
"location": "eastus",
"loginServer": "mycontainerregistry082.azurecr.io",
"name": "mycontainerregistry082",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"sku": {
"name": "Basic",
"tier": "Basic"
},
"status": null,
"storageAccount": null,
"tags": {},
"type": "Microsoft.ContainerRegistry/registries"
}
Nel resto dell'esercitazione viene usato <acrName>
come segnaposto per il nome del registro contenitori scelto in questo passaggio.
Accedere al registro contenitori
È necessario accedere all'istanza di Registro Azure Container prima di eseguire il push delle immagini. Usare il comando az acr login per completare l'operazione. È necessario specificare il nome univoco scelto per il registro contenitori al momento della creazione.
az acr login --name <acrName>
Ad esempio:
az acr login --name mycontainerregistry082
Al termine, il comando restituisce Login Succeeded
:
Login Succeeded
Assegnare tag all'immagine del contenitore
Per eseguire il push di un'immagine del contenitore in un registro privato come Registro Azure Container, è prima necessario assegnare all'immagine un tag con il nome completo del server di accesso del registro.
Per prima cosa, ottenere il nome completo del server di accesso dell'istanza di Registro Azure Container. Eseguire il comando az acr show seguente e sostituire <acrName>
con il nome del Registro di sistema creato:
az acr show --name <acrName> --query loginServer --output table
Se il nome del registro è mycontainerregistry082, ad esempio:
az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io
Visualizzare quindi l'elenco delle immagini locali con il comando docker images:
docker images
Insieme a tutte le altre immagini presenti nel computer, verrà visualizzata l'immagine aci-tutorial-app creata nell'esercitazione precedente:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 minutes ago 68.1 MB
Applicare all'immagine aci-tutorial-app il tag del server di accesso del registro contenitori. Aggiungere anche il tag :v1
alla fine del nome dell'immagine per indicarne il numero di versione. Sostituire <acrLoginServer>
con il risultato del comando az acr show eseguito in precedenza.
docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1
Eseguire di nuovo docker images
per verificare l'operazione di assegnazione di tag:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
aci-tutorial-app latest 5c745774dfa9 39 minutes ago 68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app v1 5c745774dfa9 7 minutes ago 68.1 MB
Eseguire il push dell'immagine in Registro Azure Container
Ora che è stata contrassegnata l'immagine aci-tutorial-app con il nome completo del server di accesso del registro privato, è possibile eseguire il push dell'immagine nel registro con il comando docker push . Sostituire <acrLoginServer>
con il nome completo del server di accesso ottenuto nel passaggio precedente.
docker push <acrLoginServer>/aci-tutorial-app:v1
L'operazione push
richiede alcuni secondi a seconda della connessione Internet e l'output è simile all'esempio seguente:
docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576
Elencare le immagini in Registro Azure Container
Per verificare che l'immagine di cui è appena stato eseguito il push si trovi effettivamente nell'istanza di Registro Azure Container, visualizzare l'elenco delle immagini nel registro con il comando az acr repository list. Sostituire <acrName>
con il nome del registro contenitori.
az acr repository list --name <acrName> --output table
Ad esempio:
az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app
Per visualizzare i tag per un'immagine specifica, usare il comando az acr repository show-tags.
az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table
L'output dovrebbe essere simile all'esempio seguente:
--------
v1
Passaggi successivi
In questa esercitazione è stata preparata un'istanza di Registro Azure Container da usare con Istanze di Azure Container ed è stato eseguito il push di un'immagine del contenitore nel registro. Sono stati completati i passaggi seguenti:
- Creazione di un'istanza di Registro Azure Container usando l'interfaccia della riga di comando di Azure
- Assegnazione di un tag all'immagine del contenitore per Registro Azure Container
- Caricamento di un'immagine in Registro Azure Container
Passare all'esercitazione successiva per apprendere come distribuire il contenitore in Azure usando Istanze di Azure Container: