Per questo progetto ATA, avrai un’idea di come funziona Docker in Azure. In questo tutorial su Azure Docker, imparerai a conoscere il servizio Azure Container Instance (ACI) di Microsoft.
Azure Container Instance è un cluster Kubernetes ospitato tramite l’hosting di Azure Docker. Ti consente di distribuire qualsiasi immagine Docker (Windows e Linux) ed eseguirla come container. Ogni container Azure Docker viene eseguito come un container autonomo, utilizzando la propria CPU e memoria allocata.
In questo progetto, imparerai come distribuire ed eseguire la tua prima istanza del contenitore Azure, basata su una immagine di contenitore ASP.NET di esempio di Microsoft nel cloud pubblico di Azure.
Alla fine di questo progetto, avrai un sito web ASP.NET in esecuzione in un contenitore Docker ospitato dal servizio Azure Container Instance.
Requisiti ambientali e di conoscenza
Per trarre il massimo da questo tutorial su Azure Docker, dovresti avere quanto segue:
- A local Windows 10 client with Docker Desktop installed.
- A Microsoft Azure account
- Accesso a un account Azure con le autorizzazioni per distribuire un contenitore in Azure Container Registry
- Windows Azure CLI installato. Imparerai tramite la riga di comando.
- A beginner understanding of containers and Docker.
- A registered Docker ID.
Se non ti piace l’esempio scelto in questo tutorial Azure Docker, puoi sempre utilizzare un’altra immagine del contenitore sul Docker Hub.
Senza ulteriori indugi, passiamo alla costruzione di questo Progetto!
Esecuzione di un Contenitore Docker
Per evitare frustrazioni in seguito quando qualcosa non funziona, valida sempre prima che il Docker Engine sia in esecuzione. Per farlo, apri un prompt dei comandi o una sessione di PowerShell e esegui docker info
.
Puoi vedere di seguito il tipo di output che dovresti ricevere.

Per convalidare l’avvio di un contenitore Docker, esegui docker run hello-world
. Dietro le quinte, il comando docker
esegue alcuni passaggi:
- Cerca un contenitore chiamato hello-word localmente sul tuo computer Windows 10.
- Se non lo trova, raggiunge quindi il repository pubblico Docker Hub per cercare l’ultima versione di un contenitore con il nome hello-world.
- Quando viene trovato il contenitore, viene quindi scaricato dal repository Docker Hub.
- Una volta scaricato, il contenitore viene avviato ed esegue le istruzioni di avvio fornite all’interno dell’immagine che il contenitore sta utilizzando.
Puoi vedere un esempio di output qui sotto.

Avvio di un Contenitore ASP.NET di Esempio
Ora che sai come scaricare un contenitore Docker e avviarlo, scarica e avvia il contenitore con cui lavorerai in questo Progetto. Questo contenitore Docker è un’immagine di un’applicazione web ASP.Net Core.
Per scaricare l’immagine di questo tutorial su Azure Docker, esegui il seguente comando:
Questo comando fa quanto segue:
- Dato che l’immagine Docker non è disponibile localmente, Docker scarica un container chiamato aspnetapp da un altro registro pubblico di container ospitato da Microsoft situato in mcr.microsoft.com nella directory dotnet/core/samples. Il registro del container mcr.microsoft.com è simile al pubblico Docker Hub ma è mantenuto da Microsoft e ospita solo immagini di container Microsoft.
- Esegue il container sul tuo computer locale.
- (-p 8000:80) – Mappa la porta TCP di ascolto 80 del container alla porta TCP 8000. Ciò ti permette di accedere all’app web alla porta 8000 in locale.
- (-it) – Il container verrà avviato in modo interattivo, il che significa che sarai immediatamente portato nella console quando si avvia.
- (
—rm
) – Quando il container viene arrestato, verrà rimosso.
Puoi vedere di seguito l’output che puoi aspettarti.

6. Dal tuo browser, collegati a questa applicazione container in esecuzione navigando su http://localhost:8000. Dovresti vedere l’app web di esempio ASP.Net

Creazione di un’istanza del Registro contenitori di Azure (ACR)
Una volta scaricato il contenitore ASP.NET nel tuo computer locale, è ora il momento di migrarlo all’hosting Docker di Azure con ACI e avviare questo contenitore in Azure. Per fare ciò, spingeremo il contenitore di demo nel Registro contenitori di Azure (ACR). ACR è un servizio che ti permette di distribuire ed eseguire contenitori Docker direttamente all’interno di Azure.
- Accedi al Portale di Azure.
- Fai clic sull’icona del terminale in alto per avviare Azure Cloud Shell.

3. Assicurati di scegliere la shell di Bash come mostrato di seguito.

4. Crea un gruppo di risorse di Azure in cui inserire un’istanza di ACR utilizzando il comando az group create
di seguito.

5. Ora crea l’ACR all’interno del gruppo di risorse utilizzando il comando az acr create
. Di seguito puoi vedere un esempio di creazione di un ACR con un Basic SKU utilizzando il parametro admin-enabled
impostato su true
. Questo è impostato su true
perché ti consente di eseguire la gestione delle risorse in seguito.

–admin-enabled true
Una volta fatto, dovresti avere ora un’istanza di ACR in esecuzione all’interno del tuo gruppo di risorse. Azure Docker hosting al salvataggio!
Connessione all’istanza di ACR localmente
- Ora devi passare da Azure Cloud Shell al tuo computer locale Windows per completare la configurazione.
- Sul tuo computer locale, avvia PowerShell o un prompt dei comandi con privilegi amministrativi. Userò PowerShell.
- Autenticati su Azure con Azure CLI eseguendo
az login
e segui le istruzioni per fornire le tue credenziali.

Una volta autenticato con successo, dovresti vedere un output JSON che indica l’utente con cui hai appena effettuato l’autenticazione.

4. Successivamente, autenticati all’istanza ACR che hai appena creato nella shell di Azure utilizzando il comando az acr login
utilizzando il comando sottostante. Qui sotto puoi vedere che mi sto connettendo a un’istanza ACR chiamata nopacr1, nel gruppo di risorse di Azure NOPRG.
Aggiornamento del Tag dell’Immagine Docker
- Ora sei pronto per caricare la tua immagine Docker locale sulla tua istanza ACR in Azure Docker hosting o ACI. Ma prima devi soddisfare una dipendenza ACR. Tutte le immagini Docker caricate nell’istanza ACR devono avere il nome dell’istanza ACR nel nome dell’immagine.

Trova il numero ID dell’immagine Docker o il nome dell’immagine usando il comando docker images
.

2. Aggiorna il tag dell’immagine Docker per l’immagine Docker eseguendo il comando docker tag
come mostrato di seguito. Se stai seguendo la convenzione di denominazione, usa il nome ACR di NOPACR1 e definisci il tag come nopacr1.azurecr.io. Per l’immagine stessa, usa il nome dotnetsample.

3. Verifica che il tag sia stato applicato usando nuovamente il comando docker images
. Ora dovresti vedere che il tag è stato aggiornato.
- Caricamento dell’Immagine Docker nell’Istanza ACR e Verifica

Ora carica l’immagine locale nell’istanza ACR utilizzando il comando docker push
come mostrato di seguito, fornendo l’etichetta del nome del dns in cui si trova l’istanza ACR.

2. Una volta caricata, verifica che il push nell’istanza ACR sia andato a buon fine utilizzando il Portale di Azure navigando su Tutti i servizi —> Registri contenitori di Azure e selezionando l’istanza ACR creata in precedenza.

3. Nel menu a sinistra nella sezione Servizi, fai clic su Repository. L’immagine Docker appena caricata nella tua istanza ACR dovrebbe comparire qui.

4. Fai clic sull’immagine e vedrai la sua versione e altre informazioni utili.
Esecuzione dell’istanza Azure Container (ACI)
- Ora hai creato un’istanza ACR, etichettato un’immagine del container Docker con il nome ACR come riferimento e caricato l’immagine nell’istanza ACR. Ora è il momento di utilizzare Azure Container Instance (ACI) per eseguire l’immagine Docker memorizzata nella tua istanza ACR.

Proseguendo dal passo precedente, fai clic su … accanto a latest, e scegli Esegui istanza. Questo aprirà la lama Crea istanza contenitore.
- 2. Completa i campi nella casella Crea istanza contenitore utilizzando le seguenti informazioni:
- Nome del contenitore – qualsiasi nome che desideri utilizzare per questo contenitore in esecuzione
- Tipo di OS – Linux (Questo dipende dal contenitore di origine. Se stai utilizzando lo stesso contenitore in questo progetto, potrebbe essere Windows.)
- Sottoscrizione – la tua sottoscrizione Azure
- Gruppo di risorse – qualsiasi gruppo di risorse Azure esistente o nuovo in cui aggiungere l’istanza del contenitore
Posizione – basata sul gruppo di risorse

Per questo tutorial su Docker di Azure con container ASP.NET, è possibile lasciare immutate tutte le altre impostazioni. In un ambiente di produzione, a seconda di ciò che esegue il contenitore, potresti dover modificare queste impostazioni.

3. Premi OK per creare l’istanza del contenitore.
4. Una volta che l’istanza del contenitore è stata distribuita, dovresti vedere una pagina che assomiglia all’esempio qui sotto.

5. Una volta completata la distribuzione, apri l’ACI nel portale navigando su Tutti i servizi —> Istanze del contenitore. Una volta qui, passa all’istanza dell’Azure Container Instance (ACI) appena creata. Dovresti vedere l’istanza mostrata di seguito.

6. Copia l’indirizzo IP nell’angolo in alto a destra e incollalo in un browser web. La tua app Web di esempio ASP.NET dovrebbe caricarsi dalla tua Azure Container Instance (ACI) e visualizzare una pagina Web come mostrato di seguito.
Se hai finito con questo contenitore, puoi quindi utilizzare il comando az container delete
per rimuovere il contenitore.
Conclusione