Creare un contenitore per la distribuzione in Istanze di contenitore di AzureCreate container for deployment to Azure Container Instances

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.Azure Container Instances enables deployment of Docker containers onto Azure infrastructure without provisioning any virtual machines or adopting any higher-level service. In questa esercitazione viene compilata una piccola applicazione Web in Node.js e ne viene creato un pacchetto in un contenitore che può essere eseguito usando Istanze di contenitore di Azure.In this tutorial, you build a small web application in Node.js and package it in a container that can be run using Azure Container Instances.

In questo articolo, parte della serie, è:In this article, part one of the series, you:

  • Clonare il codice sorgente dell'applicazione da GitHubClone application source code from GitHub
  • Creare un'immagine contenitore dall'origine dell'applicazioneCreate a container image from application source
  • Testare l'immagine in un ambiente locale in DockerTest the image in a local Docker environment

Nelle esercitazioni successive l'immagine viene caricata in un Registro contenitori di Azure e quindi distribuita in Istanze di contenitore di Azure.In subsequent tutorials, you upload your image to an Azure Container Registry, and then deploy it to Azure Container Instances.

Prima di iniziareBefore you begin

Questa esercitazione, è necessario che sia in esecuzione l'interfaccia CLI di Azure versione 2.0.23 o versione successiva.This tutorial requires that you are running the Azure CLI version 2.0.23 or later. Eseguire az --version per trovare la versione.Run az --version to find the version. Se è necessario installare o eseguire l'aggiornamento, vedere installare Azure CLI 2.0.If you need to install or upgrade, see Install Azure CLI 2.0.

Questa esercitazione presuppone una conoscenza di base dei concetti principali di Docker, come contenitori, immagini dei contenitore e comandi essenziali di docker.This tutorial assumes a basic understanding of core Docker concepts such as containers, container images, and basic docker commands. Se necessario, vedere Introduzione a Docker per una panoramica sui concetti fondamentali di contenitore.If needed, see Get started with Docker for a primer on container basics.

Per completare questa esercitazione, è necessario un ambiente di sviluppo Docker installato localmente.To complete this tutorial, you need a Docker development environment installed locally. Docker offre pacchetti che consente di configurare facilmente Docker in qualsiasi Mac, Windows, o Linux sistema.Docker provides packages that easily configure Docker on any Mac, Windows, or Linux system.

Azure Cloud Shell non include i componenti di Docker necessari per completare ogni passaggio di questa esercitazione.Azure Cloud Shell does not include the Docker components required to complete every step this tutorial. Nel computer locale per completare questa esercitazione, è necessario installare l'ambiente di sviluppo CLI di Azure e Docker.You must install the Azure CLI and Docker development environment on your local computer to complete this tutorial.

Ottenere il codice dell'applicazioneGet application code

L'esempio in questa esercitazione include una semplice applicazione web incorporata Node.js.The sample in this tutorial includes a simple web application built in Node.js. L'app gestisce una pagina HTML statica ed è simile alla seguente:The app serves a static HTML page and looks like this:

App dell'esercitazione visualizzata in un browser

Usare Git per scaricare l'esempio:Use git to download the sample:

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

Compilare l'immagine del contenitoreBuild the container image

Il documento Dockerfile fornito nel repository di esempio illustra come viene compilato il contenitore.The Dockerfile provided in the sample repo shows how the container is built. Viene avviato da un ufficiale immagine Node.js in base a Linux Alpine, una distribuzione di piccole dimensioni che è adatta per l'utilizzo contenitori.It starts from an official Node.js image based on Alpine Linux, a small distribution that is well suited to use with containers. Copia quindi i file dell'applicazione nel contenitore, installa le dipendenze usando Gestione pacchetti del nodo e infine avvia l'applicazione.It then copies the application files into the container, installs dependencies using the Node Package Manager, and finally starts the application.

FROM node:8.9.3-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

Utilizzare il compilazione docker comando per creare l'immagine contenitore, come la codifica aci-esercitazione-app:Use the docker build command to create the container image, tagging it as aci-tutorial-app:

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

Output di compilazione docker comando è simile al seguente (troncato per migliorare la leggibilità):Output from the docker build command is similar to the following (truncated for readability):

Sending build context to Docker daemon  119.3kB
Step 1/6 : FROM node:8.9.3-alpine
8.9.3-alpine: Pulling from library/node
88286f41530e: Pull complete
84f3a4bf8410: Pull complete
d0d9b2214720: Pull complete
Digest: sha256:c73277ccc763752b42bb2400d1aaecb4e3d32e3a9dbedd0e49885c71bea07354
Status: Downloaded newer image for node:8.9.3-alpine
 ---> 90f5ee24bee2
...
Step 6/6 : CMD node /usr/src/app/index.js
 ---> Running in f4a1ea099eec
 ---> 6edad76d09e9
Removing intermediate container f4a1ea099eec
Successfully built 6edad76d09e9
Successfully tagged aci-tutorial-app:latest

Utilizzare il immagini docker comando per visualizzare l'immagine incorporata:Use the docker images command to see the built image:

docker images

Output:Output:

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

Eseguire il contenitore in localeRun the container locally

Prima di provare a distribuire il contenitore in Istanze di contenitore di Azure, eseguirlo in locale per verificarne il funzionamento.Before you try deploying the container to Azure Container Instances, run it locally to confirm that it works. 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.The -d switch lets the container run in the background, while -p allows you to map an arbitrary port on your compute to port 80 in the container.

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.Open the browser to http://localhost:8080 to confirm that the container is running.

Esecuzione locale dell'app nel browser

Passaggi successiviNext steps

In questa esercitazione è stata creata un'immagine del contenitore che può essere distribuita in Istanze di contenitore di Azure.In this tutorial, you created a container image that can be deployed to Azure Container Instances. Sono stati completati i passaggi seguenti:The following steps were completed:

  • Clonazione dell'origine applicazione da GitHubCloned the application source from GitHub
  • Creazione di immagini del contenitore dall'origine applicazioneCreated container images from application source
  • Test del contenitore in localeTested the container locally

Passare alla prossima esercitazione per apprendere informazioni sull'archiviazione delle immagini del contenitore in un Registro contenitori di Azure.Advance to the next tutorial to learn about storing container images in an Azure Container Registry.