Guida introduttiva: Creare il primo contenitore in Istanze di contenitore di AzureQuickstart: Create your first container in Azure Container Instances

Istanze di contenitore di Azure semplifica la creazione e gestione di contenitori Docker in Azure, senza dover eseguire il provisioning di macchine virtuali o di adottare un servizio di livello superiore.Azure Container Instances makes it easy to create and manage Docker containers in Azure, without having to provision virtual machines or adopt a higher-level service. In questa guida introduttiva viene creato un contenitore in Azure, che viene quindi esposto a Internet con un nome di dominio completo (FQDN).In this quickstart, you create a container in Azure and expose it to the internet with a fully qualified domain name (FQDN). Per completare questa operazione, è sufficiente un solo comando.This operation is completed in a single command. In pochi secondi, nel browser verrà visualizzato quanto segue:Within just a few seconds, you'll see this in your browser:

App distribuita usando Istanze di contenitore di Azure visualizzata nel browser

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.If you don't have an Azure subscription, create a free account before you begin.

Aprire Azure Cloud ShellOpen Azure Cloud Shell

Azure Cloud Shell è una shell interattiva gratuita che può essere usata per eseguire la procedura di questo articolo.Azure Cloud Shell is a free, interactive shell that you can use to run the steps in this article. Gli strumenti comuni di Azure sono preinstallati e configurati in Cloud Shell per l'uso con l'account.Common Azure tools are preinstalled and configured in Cloud Shell for you to use with your account. È sufficiente selezionare il pulsante Copia per copiare il codice, incollarlo in Cloud Shell e quindi premere INVIO per eseguirlo.Just select the Copy button to copy the code, paste it in Cloud Shell, and then press Enter to run it. Esistono alcuni modi per aprire Cloud Shell:There are a few ways to open Cloud Shell:

Selezionare Prova nell'angolo superiore destro di un blocco di codice.Select Try It in the upper-right corner of a code block. Cloud Shell in questo articolo
Aprire Cloud Shell nel browser.Open Cloud Shell in your browser. https://shell.azure.com/bash
Selezionare il pulsante Cloud Shell nel menu nell'angolo superiore destro del portale di Azure.Select the Cloud Shell button on the menu in the upper-right corner of the Azure portal. Cloud Shell nel portale

Per completare questa guida introduttiva è possibile usare Azure Cloud Shell o un'installazione locale dell'interfaccia della riga di comando di Azure.You can use the Azure Cloud Shell or a local installation of the Azure CLI to complete this quickstart. Se si sceglie di installare e usare l'interfaccia della riga di comando in locale, questa guida introduttiva richiede la versione 2.0.27 o successiva dell'interfaccia della riga di comando di Azure.If you choose to install and use the CLI locally, this quickstart requires that you are running the Azure CLI version 2.0.27 or later. 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.

Creare un gruppo di risorseCreate a resource group

Le istanze di contenitore di Azure, come tutte le risorse di Azure, devono essere inserite in un gruppo di risorse, una raccolta logica in cui le risorse di Azure vengono distribuite e gestite.Azure container instances, like all Azure resources, must be placed in a resource group, a logical collection into which Azure resources are deployed and managed.

Creare un gruppo di risorse con il comando az group create.Create a resource group with the az group create command.

L'esempio seguente crea un gruppo di risorse denominato myResourceGroup nella località stati uniti orientali.The following example creates a resource group named myResourceGroup in the eastus location.

az group create --name myResourceGroup --location eastus

Creare un contenitoreCreate a container

Può essere creato un contenitore specificando un nome, un'immagine Docker e un gruppo di risorse di Azure al comando az container create.You can create a container by providing a name, a Docker image, and an Azure resource group to the az container create command. Facoltativamente, è possibile esporre il contenitore in Internet specificando un'etichetta del nome DNS.You can optionally expose the container to the internet by specifying a DNS name label. In questa guida introduttiva si distribuisce un contenitore che ospita un'app Web di piccole dimensioni scritta in Node.js.In this quickstart, you deploy a container that hosts a small web app written in Node.js.

Eseguire il comando seguente per avviare un'istanza di contenitore.Execute the following command to start a container instance. Il valore --dns-name-label deve essere univoco all'interno dell'area di Azure in cui si crea l'istanza, quindi potrebbe essere necessario modificare questo valore per garantire l'univocità.The --dns-name-label value must be unique within the Azure region you create the instance, so you might need to modify this value to ensure uniqueness.

az container create --resource-group myResourceGroup --name mycontainer --image microsoft/aci-helloworld --dns-name-label aci-demo --ports 80

In pochi secondi, verrà visualizzata una risposta alla richiesta.Within a few seconds, you should get a response to your request. Il contenitore inizialmente presenta lo stato Creazione in corso, ma viene avviato entro alcuni secondi.Initially, the container is in the Creating state, but it should start within a few seconds. È possibile controllare lo stato usando il comando az container show:You can check the status using the az container show command:

az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table

Quando si esegue il comando, vengono visualizzati il nome di dominio completo (FQDN) del contenitore e il relativo lo stato di provisioning:When you run the command, the container's fully qualified domain name (FQDN) and its provisioning state are displayed:

$ az container show --resource-group myResourceGroup --name mycontainer --query "{FQDN:ipAddress.fqdn,ProvisioningState:provisioningState}" --out table
FQDN                               ProvisioningState
---------------------------------  -------------------
aci-demo.eastus.azurecontainer.io  Succeeded

Quando il contenitore passa allo stato Completato, passare al relativo FQDN nel browser:Once the container moves to the Succeeded state, navigate to its FQDN in your browser:

Screenshot del browser che mostra l'applicazione in esecuzione in un'istanza di contenitore di Azure

Effettuare il pull dei log del contenitorePull the container logs

La visualizzazione dei log per un'istanza di contenitore è utile per risolvere i problemi con il contenitore o l'applicazione eseguita.Viewing the logs for a container instance is helpful when troubleshooting issues with your container or the application it runs.

Effettuare il pull dei log del contenitore con il comando az container logs:Pull the container's logs with the az container logs command:

az container logs --resource-group myResourceGroup --name mycontainer

L'output visualizza i log per il contenitore e dovrebbe mostrare le richieste HTTP GET generate quando l'applicazione è stata visualizzata nel browser.The output displays the logs for the container, and should show the HTTP GET requests generated when you viewed the application in your browser.

$ az container logs --resource-group myResourceGroup -n mycontainer
listening on port 80
::ffff:10.240.255.105 - - [15/Mar/2018:21:18:26 +0000] "GET / HTTP/1.1" 200 1663 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
::ffff:10.240.255.105 - - [15/Mar/2018:21:18:26 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://aci-demo.eastus.azurecontainer.io/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"

Collegare i flussi di outputAttach output streams

Oltre a ottenere i log, è possibile collegare i flussi di errore e di output standard locali a quello del contenitore.In addition to tailing the logs, you can attach your local standard out and standard error streams to that of the container.

Per prima cosa, eseguire il comando az container attach per collegare la console locale ai flussi di output del contenitore:First, execute the az container attach command to attach your local console the container's output streams:

az container attach --resource-group myResourceGroup -n mycontainer

Al termine, aggiornare il browser alcune volte per generare output aggiuntivo.Once attached, refresh your browser a few times to generate some additional output. Scollegare infine la console con Control+C.Finally, detach your console with Control+C. L'output dovrebbe essere simile al seguente:You should see output similar to the following:

$ az container attach --resource-group myResourceGroup -n mycontainer
Container 'mycontainer' is in state 'Running'...
(count: 1) (last timestamp: 2018-03-15 21:17:59+00:00) pulling image "microsoft/aci-helloworld"
(count: 1) (last timestamp: 2018-03-15 21:18:05+00:00) Successfully pulled image "microsoft/aci-helloworld"
(count: 1) (last timestamp: 2018-03-15 21:18:05+00:00) Created container with id 3534a1e2ee392d6f47b2c158ce8c1808d1686fc54f17de3a953d356cf5f26a45
(count: 1) (last timestamp: 2018-03-15 21:18:06+00:00) Started container with id 3534a1e2ee392d6f47b2c158ce8c1808d1686fc54f17de3a953d356cf5f26a45

Start streaming logs:
listening on port 80
::ffff:10.240.255.105 - - [15/Mar/2018:21:18:26 +0000] "GET / HTTP/1.1" 200 1663 "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
::ffff:10.240.255.105 - - [15/Mar/2018:21:18:26 +0000] "GET /favicon.ico HTTP/1.1" 404 150 "http://aci-demo.eastus.azurecontainer.io/" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
::ffff:10.240.255.107 - - [15/Mar/2018:21:18:44 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"
::ffff:10.240.255.107 - - [15/Mar/2018:21:18:47 +0000] "GET / HTTP/1.1" 304 - "-" "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.146 Safari/537.36"

Pulire le risorseClean up resources

Quando il contenitore non è più necessario, rimuoverlo usando il comando az container delete:When you're done with the container, remove it using the az container delete command:

az container delete --resource-group myResourceGroup --name mycontainer

Per verificare che il contenitore sia stato eliminato, eseguire il comando az container list:To verify that the container has been deleted, execute the az container list command:

az container list --resource-group myResourceGroup --output table

Il contenitore mycontainer non deve essere visualizzato nell'output del comando.The mycontainer container should not appear in the command's output. Se nel gruppo di risorse non sono presenti altri contenitori, non viene visualizzato alcun output.If you have no other containers in the resource group, no output is displayed.

Passaggi successiviNext steps

In questa guida introduttiva è stata creata un'istanza di contenitore di Azure da un'immagine nel registro nell'hub Docker pubblico.In this quickstart, you created an Azure container instance from an image in the public Docker Hub registry. Per provare a creare personalmente un'immagine del contenitore e a distribuirla in Istanze di contenitore di Azure da un registro contenitori di Azure privato, passare all'esercitazione su Istanze di contenitore di Azure.If you'd like to build a container image yourself and deploy it to Azure Container Instances from a private Azure container registry, continue to the Azure Container Instances tutorial.

Per provare le opzioni per l'esecuzione di contenitori in un sistema di orchestrazione in Azure, vedere la guida introduttiva per Service Fabric o Azure Kubernetes Service (AKS).To try out options for running containers in an orchestration system on Azure, see the Service Fabric or Azure Kubernetes Service (AKS) quickstarts.