Creare un contenitore per la distribuzione in Istanze di contenitore di Azure

Istanze di contenitore di Azure consente la distribuzione di contenitori Docker nell'infrastruttura di Azure senza effettuare il provisioning di macchine virtuali o adottare servizi di livello superiore. In questa esercitazione si compilerà una semplice applicazione Web in Node.js e si creerà un pacchetto in un contenitore che può essere eseguito usando Istanze di contenitore di Azure. Verranno illustrati gli argomenti seguenti:

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

Nelle esercitazioni successive si caricherà l'immagine in un Registro contenitori di Azure e quindi la si distribuirà in Istanze di contenitore di 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'esempio in questa esercitazione include una semplice applicazione Web compilata in Node.js. L'app gestisce una pagina HTML statica ed è simile alla seguente:

App dell'esercitazione visualizzata in un browser

Usare Git per scaricare l'esempio:

git clone https://github.com/Azure-Samples/aci-helloworld.git

Compilare l'immagine del contenitore

Il documento Dockerfile fornito nel repository di esempio illustra come viene compilato il contenitore. Viene avviato da un'immagine Node.js ufficiale basata su Alpine Linux, una distribuzione di piccole dimensioni particolarmente adatta per l'uso con i contenitori. Copia quindi i file dell'applicazione nel contenitore, installa le dipendenze usando Gestione pacchetti del nodo e infine avvia l'applicazione.

FROM node:8.2.0-alpine
RUN mkdir -p /usr/src/app
COPY ./app/* /usr/src/app/
WORKDIR /usr/src/app
RUN npm install
CMD node /usr/src/app/index.js

Usare il comando docker build per creare l'immagine del contenitore, assegnandole il tag aci-tutorial-app:

docker build ./aci-helloworld -t aci-tutorial-app

Usare docker images per visualizzare l'immagine compilata:

docker images

Output:

REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
aci-tutorial-app             latest              5c745774dfa9        39 seconds ago       68.1 MB

Eseguire il contenitore in locale

Prima di provare a distribuire il contenitore in Istanze di contenitore di Azure, eseguirlo in locale per verificarne il funzionamento. L'opzione -d consente di eseguire il contenitore in background, mentre -p consente di eseguire il mapping di una porta arbitraria del computer alla porta 80 del contenitore.

docker run -d -p 8080:80 aci-tutorial-app

Aprire il browser all'indirizzo http://localhost:8080 per verificare che il contenitore sia un esecuzione.

Esecuzione locale dell'app nel browser

Passaggi successivi

In questa esercitazione è stata creata un'immagine del contenitore che può essere distribuita in Istanze di contenitore di Azure. Sono stati completati i passaggi seguenti:

  • Clonazione dell'origine applicazione da GitHub
  • Creazione di immagini del contenitore dall'origine applicazione
  • Test del contenitore in locale

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