Esercitazione: Distribuire un'applicazione contenitore in Istanze di Azure Container
Questa è l'ultima esercitazione di una serie in tre parti. Nelle parti precedenti della serie, è stata creata un'immagine del contenitore e ne è stato eseguito il push in Registro Azure Container. Questo articolo completa la serie con la distribuzione del contenitore in Istanze di Azure Container.
In questa esercitazione:
- Distribuire il contenitore da Registro Azure Container a Istanze di Azure Container
- Visualizzare l'applicazione in esecuzione nel browser
- Visualizzare i log del contenitore
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.
Distribuire il contenitore tramite l'interfaccia della riga di comando di Azure
In questa sezione si userà l'interfaccia della riga di comando di Azure per distribuire l'immagine che è stata creata nella prima esercitazione e di cui è stato eseguito il push in Registro Azure Container nella seconda esercitazione. Prima di procedere, assicurarsi di aver completato tali esercitazioni.
Ottenere le credenziali del registro
Quando si distribuisce un'immagine ospitata in un registro contenitori privato di Azure come quello creato nella seconda esercitazione, è necessario specificare le credenziali per accedere al registro.
Una procedura consigliata per molti scenari consiste nel creare e configurare un'entità servizio di Microsoft Entra con autorizzazioni pull per il registro. Per alcuni script di esempio su come creare un'entità servizio con le necessarie autorizzazioni, vedere Eseguire l'autenticazione con Registro Azure Container da Istanze di Azure Container. Prendere nota dell'ID e della password dell'entità servizio. Usare queste credenziali per accedere al registro quando si distribuisce il contenitore.
È anche necessario ottenere il nome completo del server di accesso del registro contenitori (sostituire <acrName>
con il nome del registro):
az acr show --name <acrName> --query loginServer
Distribuire il contenitore
Usare quindi il comando az container create per distribuire il contenitore. Sostituire <acrLoginServer>
con il valore ottenuto dal comando precedente. Sostituire <service-principal-ID>
e <service-principal-password>
con l'ID entità servizio e la password creati per accedere al registro. Sostituire <aciDnsLabel>
con il nome DNS desiderato.
az container create --resource-group myResourceGroup --name aci-tutorial-app --image <acrLoginServer>/aci-tutorial-app:v1 --cpu 1 --memory 1 --registry-login-server <acrLoginServer> --registry-username <service-principal-ID> --registry-password <service-principal-password> --ip-address Public --dns-name-label <aciDnsLabel> --ports 80
Entro pochi secondi si dovrebbe ricevere una risposta iniziale da Azure. Il valore --dns-name-label
deve essere univoco all'interno dell'area di Azure in cui si crea l'istanza di contenitore. Se quando si esegue il comando viene visualizzato un messaggio di errore relativo all'etichetta del nome DNS, modificare il valore nel comando precedente.
Verificare lo stato di avanzamento della distribuzione
Per visualizzare lo stato della distribuzione, usare il comando az container show:
az container show --resource-group myResourceGroup --name aci-tutorial-app --query instanceView.state
Ripetere il comando az container show fino a quando lo stato cambia da In sospeso a In esecuzione, operazione che dovrebbe richiedere meno di un minuto. Quando il contenitore è In esecuzione, procedere al passaggio successivo.
Visualizzare l'applicazione e i log dei contenitori
Dopo aver completato la distribuzione, visualizzare il nome di dominio completo (FQDN) del contenitore usando il comando az container show:
az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn
Ad esempio:
"aci-demo.eastus.azurecontainer.io"
Per visualizzare l'applicazione in esecuzione, passare al nome DNS visualizzato in un browser a scelta:
È anche possibile visualizzare l'output del log del contenitore:
az container logs --resource-group myResourceGroup --name aci-tutorial-app
Output di esempio:
listening on port 80
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET / HTTP/1.1" 200 1663 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
::ffff:10.240.0.4 - - [21/Jul/2017:06:00:02 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://aci-demo.eastus.azurecontainer.io/" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"
Pulire le risorse
Se non è più necessaria alcuna delle risorse create in questa serie di esercitazioni, è possibile eseguire il comando az group delete per rimuovere il gruppo di risorse e tutte le risorse in esso contenute. Questo comando elimina il registro del contenitore creato, il contenitore in esecuzione e tutte le risorse correlate.
az group delete --name myResourceGroup
Passaggi successivi
In questa esercitazione è stato completato il processo di distribuzione del contenitore in Istanze di Azure Container. Sono stati completati i passaggi seguenti:
- Il contenitore è stato distribuito da Registro Azure Container con l'interfaccia della riga di comando di Azure
- L'applicazione è stata visualizzata nel browser
- I log del contenitore sono stati visualizzati
Dopo aver acquisito queste nozioni di base, approfondire la conoscenza di Istanze di Azure Container, ad esempio in relazione al funzionamento dei gruppi di contenitori: