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

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 installare Docker in locale. 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 Microsoft Entra con autorizzazioni pull per il Registro di sistema. 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:

App Hello World nel browser

È 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, nonché 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:

Gruppi di contenitori in Istanze di Azure Container