Esercitazione: Distribuire un contenitore in Istanze di contenitore di AzureTutorial: Deploy a container to Azure Container Instances

Questa è l'ultima esercitazione di una serie in tre parti.This is the final tutorial in a three-part series. Nelle parti precedenti della serie, è stata creata un'immagine del contenitore e ne è stato eseguito il push in Registro contenitori di Azure.Earlier in the series, a container image was created and pushed to Azure Container Registry. Questo articolo completa la serie con la distribuzione del contenitore in Istanze di contenitore di Azure.This article completes the series by deploying the container to Azure Container Instances.

In questa esercitazione:In this tutorial, you:

  • Distribuire il contenitore da Registro contenitori di Azure a Istanze di contenitore di AzureDeploy the container from Azure Container Registry to Azure Container Instances
  • Visualizzare l'applicazione in esecuzione nel browserView the running application in the browser
  • Visualizzare i log del contenitoreDisplay the container's logs

Prima di iniziareBefore you begin

Per completare questa esercitazione, è necessario soddisfare i requisiti seguenti:You must satisfy the following requirements to complete this tutorial:

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.Azure CLI: You must have Azure CLI version 2.0.29 or later installed on your local computer. Eseguire az --version per trovare la versione.Run az --version to find the version. Se è necessario eseguire l'installazione o l'aggiornamento, vedere Installare l'interfaccia della riga di comando di Azure 2.0.If you need to install or upgrade, see Install Azure CLI 2.0.

Docker: questa esercitazione presuppone una conoscenza di base dei concetti principali di Docker, come contenitori, immagini dei contenitore e comandi essenziali di docker.Docker: This tutorial assumes a basic understanding of core Docker concepts like containers, container images, and basic docker commands. Per una panoramica sui concetti fondamentali relativi a Docker e al contenitore, vedere Docker overview (Panoramica su Docker).For a primer on Docker and container basics, see the Docker overview.

Motore Docker: per completare questa esercitazione, è necessario che sia installato in locale il motore Docker.Docker Engine: To complete this tutorial, you need Docker Engine installed locally. Docker offre pacchetti che configurano l'ambiente Docker in macOS, Windows e Linux.Docker provides packages that configure the Docker environment on macOS, Windows, and 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.Because the Azure Cloud shell does not include the Docker daemon, you must install both the Azure CLI and Docker Engine on your local computer to complete this tutorial. Per questa esercitazione non è possibile usare Azure Cloud Shell.You cannot use the Azure Cloud Shell for this tutorial.

Distribuire il contenitore tramite l'interfaccia della riga di comando di AzureDeploy the container using the Azure CLI

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 contenitori di Azure nella seconda esercitazione.In this section, you use the Azure CLI to deploy the image built in the first tutorial and pushed to Azure Container Registry in the second tutorial. Prima di procedere, assicurarsi di aver completato tali esercitazioni.Be sure you've completed those tutorials before proceeding.

Ottenere le credenziali del registroGet registry credentials

Quando si distribuire un'immagine ospitata in un registro contenitori privato come quello creato nella seconda esercitazione, è necessario specificare le credenziali del registro.When you deploy an image that's hosted in a private container registry like the one created in the second tutorial, you must supply the registry's credentials.

Per prima cosa, ottenere il nome completo del server di accesso del registro contenitori (sostituire <acrName> con il nome del registro):First, get the full name of the container registry login server (replace <acrName> with the name of your registry):

az acr show --name <acrName> --query loginServer

Successivamente, ottenere la password del registro contenitori:Next, get the container registry password:

az acr credential show --name <acrName> --query "passwords[0].value"

Distribuire il contenitoreDeploy container

Usare quindi il comando az container create per distribuire il contenitore.Now, use the az container create command to deploy the container. Sostituire <acrLoginServer> e <acrPassword> con i valori ottenuti dai due comandi precedenti.Replace <acrLoginServer> and <acrPassword> with the values you obtained from the previous two commands. Sostituire <acrName> con il nome del registro contenitori.Replace <acrName> with the name of your container registry.

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 <acrName> --registry-password <acrPassword> --dns-name-label aci-demo --ports 80

Entro pochi secondi si dovrebbe ricevere una risposta iniziale da Azure.Within a few seconds, you should receive an initial response from Azure. Il valore --dns-name-label deve essere univoco all'interno dell'area di Azure in cui si crea l'istanza di contenitore.The --dns-name-label value must be unique within the Azure region you create the container instance. Se quando si esegue il comando viene visualizzato un messaggio di errore relativo all'etichetta del nome DNS, modificare il valore nel comando precedente.Modify the value in the preceding command if you receive a DNS name label error message when you execute the command.

Verificare lo stato di avanzamento della distribuzioneVerify deployment progress

Per visualizzare lo stato della distribuzione, usare il comando az container show:To view the state of the deployment, use 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.Repeat the az container show command until the state changes from Pending to Running, which should take under a minute. Quando il contenitore è In esecuzione, procedere al passaggio successivo.When the container is Running, proceed to the next step.

Visualizzare l'applicazione e i log dei contenitoriView the application and container logs

Dopo aver completato la distribuzione, visualizzare il nome di dominio completo (FQDN) del contenitore usando il comando az container show:Once the deployment succeeds, display the container's fully qualified domain name (FQDN) with the az container show command:

az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn

Ad esempio: For example:

$ az container show --resource-group myResourceGroup --name aci-tutorial-app --query ipAddress.fqdn
"aci-demo.eastus.azurecontainer.io"

Per visualizzare l'applicazione in esecuzione, passare al nome DNS visualizzato in un browser a scelta:To see the running application, navigate to the displayed DNS name in your favorite browser:

App Hello World nel browser

È anche possibile visualizzare l'output del log del contenitore:You can also view the log output of the container:

az container logs --resource-group myResourceGroup --name aci-tutorial-app

Output di esempio:Example output:

$ az container logs --resource-group myResourceGroup --name aci-tutorial-app
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 risorseClean up resources

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.If you no longer need any of the resources you created in this tutorial series, you can execute the az group delete command to remove the resource group and all resources it contains. Questo comando elimina il registro del contenitore creato, nonché il contenitore in esecuzione e tutte le risorse correlate.This command deletes the container registry you created, as well as the running container, and all related resources.

az group delete --name myResourceGroup

Passaggi successiviNext steps

In questa esercitazione è stato completato il processo di distribuzione del contenitore in Istanze di contenitore di Azure.In this tutorial, you completed the process of deploying your container to Azure Container Instances. Sono stati completati i passaggi seguenti:The following steps were completed:

  • Il contenitore è stato distribuito da Registro contenitori di Azure con l'interfaccia della riga di comando di AzureDeployed the container from Azure Container Registry using the Azure CLI
  • L'applicazione è stata visualizzata nel browserViewed the application in the browser
  • I log del contenitore sono stati visualizzatiViewed the container logs

Dopo aver acquisito queste nozioni di base, approfondire la conoscenza di Istanze di contenitore di Azure, ad esempio in relazione al funzionamento dei gruppi di contenitori:Now that you have the basics down, move on to learning more about Azure Container Instances, such as how container groups work: