

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Crea e testa immagini Docker per i servizi container Lightsail
<a name="amazon-lightsail-creating-container-images"></a>

Docker è una tecnologia che permette di creare, eseguire, testare e implementare applicazioni distribuite basate su container. I servizi container Amazon Lightsail utilizzano immagini di container Docker nelle distribuzioni per avviare i container.

In questa guida viene illustrato come creare un'immagine di container nel computer locale utilizzando un Dockerfile. Dopo aver creato l'immagine, puoi inviarla al servizio container Lightsail per implementarla.

Per completare le procedure in questa guida, devi disporre di una conoscenza base di Docker e del suo funzionamento. Per ulteriori informazioni su Docker, consulta [Cos'è Docker?](https://aws.amazon.com/docker/) e la [panoramica su Docker](https://docs.docker.com/get-started/overview/).

**Indice**
+ [Fase 1: completamento dei prerequisiti](#create-container-image-prerequisite)
+ [Fase 2: creazione di un Dockerfile e di un'immagine di container](#create-container-image-create-dockerfile)
+ [Fase 3: esecuzione della nuova immagine di container](#create-container-image-run-container)
+ [(Opzionale) Fase 4: pulizia dei container in esecuzione sul computer locale](#create-container-image-cleanup)
+ [Fasi successive dopo la creazione di immagini di container](#create-container-image-next-steps)

## Fase 1: completamento dei prerequisiti
<a name="create-container-image-prerequisite"></a>

Prima di iniziare, devi installare il software necessario per creare container e quindi inviarlo al servizio container Lightsail. Ad esempio, devi installare e utilizzare Docker per creare immagini di container personalizzate che puoi quindi utilizzare con il servizio container Lightsail. Per ulteriori informazioni, consulta [Installing software to manage container images for your Amazon Lightsail container services](amazon-lightsail-install-software.md).

## Fase 2: creazione di un Dockerfile e di un'immagine di container
<a name="create-container-image-create-dockerfile"></a>

Completa la procedura seguente per creare un Dockerfile e un'immagine di container Docker `mystaticwebsite` a partire da esso. L'immagine di container sarà per un semplice sito Web statico ospitato su un server Web Apache su Ubuntu.

1. Creazione di una cartella `mystaticwebsite` sul tuo computer locale in cui archivierai il tuo Dockerfile.

1. Crea un Dockerfile nella cartella che hai appena creato.

   Il Dockerfile non utilizza un'estensione di file, ad esempio `.TXT`. Il nome del file è `Dockerfile`.

1. Copia uno dei seguenti blocchi di codice, a seconda di come vuoi configurare l'immagine di container, e incollalo nel Dockerfile:
   + **Se vuoi creare una semplice immagine di container del sito Web statico con un messaggio Hello World**, copia il seguente blocco di codice e incollalo nel Dockerfile. Questo esempio di codice utilizza l'immagine Ubuntu 18.04. L'istruzione `RUN` aggiorna le cache dei pacchetti, installa e configura Apache e stampa un messaggio Hello World nella radice del documento del server Web. L'istruzione `EXPOSE` espone la porta 80 nel container, mentre l'istruzione `CMD` avvia il server Web.

     ```
     FROM ubuntu:18.04
     
     # Install dependencies
     RUN apt-get update && \
      apt-get -y install apache2
     
     # Write hello world message
     RUN echo 'Hello World!' > /var/www/html/index.html
     
     # Open port 80
     EXPOSE 80
     
     # Start Apache service
     CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
     ```
   + **Se vuoi utilizzare il tuo set di file HTML per l'immagine di container del sito Web statico**, crea una cartella `html` nella stessa cartella in cui è archiviato il Dockerfile. Quindi posiziona i tuoi file HTML in quella cartella.

     Dopo aver posizionato i tuoi file HTML nella cartella `html`, copia il seguente blocco di codice e incollalo nel Dockerfile. Questo esempio di codice utilizza l'immagine Ubuntu 18.04. L'istruzione `RUN` aggiorna le cache dei pacchetti, installa e configura Apache. L'istruzione `COPY` copia il contenuto della cartella html nella radice del documento del server Web. L'istruzione `EXPOSE` espone la porta 80 nel container, mentre l'istruzione `CMD` avvia il server Web.

     ```
     FROM ubuntu:18.04
     
     # Install dependencies
     RUN apt-get update && \
      apt-get -y install apache2
     
     # Copy html directory files
     COPY html /var/www/html/
     
     # Open port 80
     EXPOSE 80
     
     CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]
     ```

1. Apri un prompt dei comandi o una finestra del terminale e modifica la directory nella cartella in cui è archiviato il Dockerfile.

1. Inserisci il comando seguente per creare l'immagine di container utilizzando il Dockerfile nella cartella. Questo comando crea una nuova immagine di container Docker denominata `mystaticwebsite`.

   ```
   docker build -t mystaticwebsite .
   ```

   Dovresti visualizzare un messaggio che conferma che l'immagine è stata creata correttamente.

1. Inserisci il comando seguente per visualizzare le immagini di container sul computer locale.

   ```
   docker images --filter reference=mystaticwebsite
   ```

   Dovresti vedere un risultato analogo all'esempio seguente, che mostra la nuova immagine di container creata.  
![Risultato del comando docker images](http://docs.aws.amazon.com/it_it/lightsail/latest/userguide/images/docker-images-command-result.png)

   L'immagine di container appena creata è pronta per essere testata utilizzandola per eseguire un nuovo container sul computer locale. Continua fino alla successiva [Fase 3: esecuzione della nuova immagine di container](#create-container-image-run-container) in questa guida.

## Fase 3: esecuzione della nuova immagine di container
<a name="create-container-image-run-container"></a>

Completa i seguenti passaggi per eseguire la nuova immagine di container creata.

1. In un prompt dei comandi o in una finestra del terminale, inserisci il comando seguente per eseguire l'immagine di container creata nella precedente [Fase 2: creazione di un Dockerfile e di un'immagine di container](#create-container-image-create-dockerfile) in questa guida. L'opzione `-p 8080:80` mappa la porta 80 esposta sul container alla porta 8080 sul computer locale. L'opzione `-d` specifica che il container deve essere eseguito in modalità scollegata.

   ```
   docker container run -d -p 8080:80 --name mystaticwebsite mystaticwebsite:latest
   ```

1. Inserisci il comando seguente per visualizzare i container in esecuzione.

   ```
   docker container ls -a
   ```

   Dovresti vedere un risultato analogo all'esempio seguente, che mostra il nuovo container in esecuzione.  
![Risultato del comando docker container](http://docs.aws.amazon.com/it_it/lightsail/latest/userguide/images/docker-container-command-result.png)

1. Per confermare che il container è operativo, apri una nuova finestra del browser e passa a `http://localhost:8080`. Dovresti visualizzare un messaggio simile all'esempio seguente. Questo conferma che il container è operativo sul computer locale.  
![Sito Web statico in esecuzione in un container Docker](http://docs.aws.amazon.com/it_it/lightsail/latest/userguide/images/container-mystaticsite-hello-world.png)

   L'immagine del container appena creato è pronta per essere inviata al tuo account Lightsail, in modo da poterla implementare nel tuo servizio container Lightsail. Per ulteriori informazioni, consulta [Pushing and managing container images on your Amazon Lightsail container services](amazon-lightsail-pushing-container-images.md).

## (Opzionale) Fase 4: pulizia dei container in esecuzione sul computer locale
<a name="create-container-image-cleanup"></a>

Ora che hai creato un'immagine di container che puoi inviare al servizio container Lightsail, è il momento di pulire i container in esecuzione sul computer locale seguendo le procedure descritte in questa guida.

Completa i passaggi seguenti per pulire i container in esecuzione sul computer locale:

1. Inserisci il comando seguente per visualizzare i container in esecuzione sul computer locale.

   ```
   docker container ls -a
   ```

   Dovresti vedere un risultato simile al seguente, in cui sono elencati i nomi dei container in esecuzione sul computer locale.  
![Risultato del comando docker container](http://docs.aws.amazon.com/it_it/lightsail/latest/userguide/images/docker-container-command-result.png)

1. Esegui il comando seguente per rimuovere il container in esecuzione creato in precedenza in questa guida. Questo forza l'arresto del container e lo elimina in modo permanente.

   ```
   docker container rm <ContainerName> --force
   ```

   Nel comando, sostituisci < ContainerName > con il nome del contenitore che desideri interrompere ed elimina.

   Esempio:

   ```
   docker container rm {{mystaticwebsite}} --force
   ```

   Il container creato come risultato di questa guida dovrebbe essere ora eliminato.

## Fasi successive dopo la creazione di immagini di container
<a name="create-container-image-next-steps"></a>

Dopo aver creato le immagini di container, inviale al servizio container Lightsail quando sei pronto per implementarle. Per ulteriori informazioni, consulta [Gestire le immagini del servizio container Lightsail](amazon-lightsail-pushing-container-images.md).

**Topics**
+ [Fase 1: completamento dei prerequisiti](#create-container-image-prerequisite)
+ [Fase 2: creazione di un Dockerfile e di un'immagine di container](#create-container-image-create-dockerfile)
+ [Fase 3: esecuzione della nuova immagine di container](#create-container-image-run-container)
+ [(Opzionale) Fase 4: pulizia dei container in esecuzione sul computer locale](#create-container-image-cleanup)
+ [Fasi successive dopo la creazione di immagini di container](#create-container-image-next-steps)
+ [Gestione di immagini di container](amazon-lightsail-pushing-container-images.md)
+ [Installa il plug-in per i servizi dei container](amazon-lightsail-install-software.md)
+ [Accesso al repository privato di Amazon ECR](amazon-lightsail-container-service-ecr-private-repo-access.md)