Creare immagini del contenitore da usare con il servizio contenitore di Azure

In questa esercitazione, parte uno di sette, si prepara un'applicazione multi-contenitore per l'uso in Kubernetes. I passaggi completati comprendono:

  • Clonazione dell'origine applicazione da GitHub
  • Creazione di un'immagine del contenitore dall'origine applicazione
  • Test dell'applicazione in un ambiente Docker locale

Al termine, l'applicazione seguente sarà accessibile nell'ambiente di sviluppo locale.

Immagine del cluster Kubernetes in Azure

Nelle esercitazioni successive, l'immagine del contenitore verrà caricata in un'istanza di Registro contenitori di Azure e quindi eseguita in un cluster Kubernetes ospitato in Azure.

Prima di iniziare

Questa esercitazione presuppone una conoscenza di base dei concetti principali di Docker, come contenitori, immagini dei contenitore e comandi essenziali. Se necessario, vedere Introduzione a Docker per una panoramica sui concetti fondamentali relativi al contenitore.

Per completare questa esercitazione è necessario un ambiente di sviluppo Docker. Docker offre pacchetti che consentono di configurare facilmente Docker in qualsiasi sistema Mac, Windows o Linux.

Ottenere il codice dell'applicazione

L'applicazione di esempio utilizzata in questa esercitazione è un'app di voto base. L'applicazione è costituita da un componente Web front-end e un'istanza Redis back-end. Viene creato un pacchetto del componente Web in un'immagine del contenitore personalizzata. L'istanza di Redis usa un'immagine non modificata dell'hub Docker.

Usare git per scaricare una copia dell'applicazione per l'ambiente di sviluppo.

git clone https://github.com/Azure-Samples/azure-voting-app-redis.git

All'interno della directory clonata sono disponibili il codice sorgente dell'applicazione, un file Docker Compose creato in precedenza e un file manifesto Kubernetes. Questi file vengono usati per creare le attività per l'esercitazione.

Creare immagini del contenitore

Docker Compose può essere usato per automatizzare la creazione di immagini del contenitore e la distribuzione di applicazioni multi-contenitore.

Eseguire il file docker-compose.yaml per creare l'immagine del contenitore, scaricare l'immagine Redis e avviare l'applicazione.

docker-compose -f ./azure-voting-app-redis/docker-compose.yaml up -d

Al termine usare il comando docker images per vedere le immagini create.

docker images

Si noti che sono state scaricate o create tre immagini. L'immagine azure-vote-front contiene l'applicazione. È stata ottenuta dall'immagine nginx-flask. L'immagine Redis è stata scaricata dall'hub Docker.

REPOSITORY                   TAG        IMAGE ID            CREATED             SIZE
azure-vote-front             latest     9cc914e25834        40 seconds ago      694MB
redis                        latest     a1b99da73d05        7 days ago          106MB
tiangolo/uwsgi-nginx-flask   flask      788ca94b2313        9 months ago        694MB

Eseguire il comando docker ps per vedere i contenitori in esecuzione.

docker ps

Output:

CONTAINER ID        IMAGE             COMMAND                  CREATED             STATUS              PORTS                           NAMES
82411933e8f9        azure-vote-front  "/usr/bin/supervisord"   57 seconds ago      Up 30 seconds       443/tcp, 0.0.0.0:8080->80/tcp   azure-vote-front
b68fed4b66b6        redis             "docker-entrypoint..."   57 seconds ago      Up 30 seconds       0.0.0.0:6379->6379/tcp          azure-vote-back

Testare l'applicazione in locale

Passare a http://localhost:8080 per vedere l'applicazione in esecuzione.

Immagine del cluster Kubernetes in Azure

Pulire le risorse

Ora che le funzionalità dell'applicazione sono state verificate, i contenitori in esecuzione possono essere arrestati e rimossi. Non eliminare le immagini del contenitore. L'immagine azure-vote-front verrà caricata in un'istanza di Registro contenitori di Azure nella prossima esercitazione.

Eseguire questo comando per arrestare i contenitori in esecuzione.

docker-compose -f ./azure-voting-app-redis/docker-compose.yaml stop

Eliminare i contenitori arrestati con il comando seguente.

docker-compose -f ./azure-voting-app-redis/docker-compose.yaml rm

Al termine si avrà un'immagine del contenitore con l'applicazione Azure Vote.

Passaggi successivi

In questa esercitazione è stata testata un'applicazione e sono state create le immagini del contenitore per l'applicazione stessa. Sono stati completati i passaggi seguenti:

  • Clonazione dell'origine applicazione da GitHub
  • Creazione di un'immagine del contenitore dall'origine applicazione
  • Test dell'applicazione in un ambiente Docker locale

Passare alla prossima esercitazione per apprendere informazioni sull'archiviazione delle immagini del contenitore in un Registro contenitori di Azure.