

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à.

# Creazione di un container Docker all'interno CloudShell e trasferimento in un repository Amazon ECR
<a name="tutorial-docker-cli"></a>

Questo tutorial mostra come definire e creare un container Docker AWS CloudShell e inviarlo a un repository Amazon ECR.

## Prerequisiti
<a name="prerequisites-docker-cli"></a>
+ È necessario disporre delle autorizzazioni necessarie per creare e inviare un repository Amazon ECR. Per ulteriori informazioni sui repository con Amazon ECR, consulta gli [archivi privati di Amazon ECR nella](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) *Amazon* ECR User Guide. *Per ulteriori informazioni sulle autorizzazioni necessarie per il push di immagini con Amazon ECR, consulta [Autorizzazioni IAM richieste per il push di un'immagine nella](https://docs.aws.amazon.com/AmazonECR/latest/userguide/image-push.html#image-push-iam) Amazon ECR User Guide.*

## Procedura tutorial
<a name="tutorial-docker-cli-steps"></a>

Il seguente tutorial illustra come utilizzare l' CloudShell interfaccia per creare un contenitore Docker e inviarlo a un repository Amazon ECR.

1. Crea una nuova cartella nella directory home.

   ```
   mkdir ~/docker-cli-tutorial
   ```

1. Vai alla cartella che hai creato.

   ```
   cd ~/docker-cli-tutorial
   ```

1. Crea un Dockerfile vuoto.

   ```
   touch Dockerfile
   ```

1. Utilizzando un editor di testo, ad esempio`nano Dockerfile`, apri il file e incolla il seguente contenuto al suo interno.

   ```
   # Dockerfile
   
   # Base this container on the latest Amazon Linux version
   FROM public.ecr.aws/amazonlinux/amazonlinux:latest
   
   # Install the cowsay binary
   RUN dnf install --assumeyes cowsay
   
   # Default entrypoint binary
   ENTRYPOINT [ "cowsay" ]
   
   # Default argument for the cowsay entrypoint
   CMD [ "Hello, World!" ]
   ```

1. Il Dockerfile è ora pronto per essere creato. Costruisci il contenitore eseguendo. `docker build` Etichetta il contenitore con un easy-to-type nome da utilizzare nei comandi futuri.

   ```
   docker build --tag test-container .
   ```

   Assicurati di includere il punto finale (`.`).  
![\[Immagine del comando docker build eseguito all'interno. AWS CloudShell\]](http://docs.aws.amazon.com/it_it/cloudshell/latest/userguide/images/docker-cli-tutorial%20-%201-docker-build.png)

1. Ora puoi testare il contenitore per verificare che funzioni correttamente in AWS CloudShell.

   ```
   docker container run test-container
   ```  
![\[Immagine del comando run del contenitore docker all'interno AWS CloudShell\]](http://docs.aws.amazon.com/it_it/cloudshell/latest/userguide/images/docker-cli-tutorial%20-%202-docker-run.png)

1. Ora che hai un contenitore Docker funzionante, devi inviarlo a un repository Amazon ECR. Se disponi di un repository Amazon ECR esistente, puoi saltare questo passaggio. 

   Esegui il seguente comando per creare un repository Amazon ECR per questo tutorial.

   ```
   ECR_REPO_NAME=docker-tutorial-repo
   aws ecr create-repository --repository-name ${ECR_REPO_NAME}
   ```  
![\[Immagine del comando utilizzato per creare un repository Amazon ECR all'interno AWS CloudShell\]](http://docs.aws.amazon.com/it_it/cloudshell/latest/userguide/images/docker-cli-tutorial%20-%203-ecr-create-repo%20(redacted).png)

1. Dopo aver creato il repository Amazon ECR, puoi inviare il contenitore Docker al suo interno.

   Esegui il comando seguente per ottenere le credenziali di accesso Amazon ECR per Docker.

   ```
   AWS_ACCOUNT_ID=$(aws sts get-caller-identity --query "Account" --output text)
   ECR_URL=${AWS_ACCOUNT_ID}.dkr.ecr.${AWS_REGION}.amazonaws.com
   aws ecr get-login-password | docker login --username AWS --password-stdin ${ECR_URL}
   ```  
![\[Immagine del comando usato per ottenere le credenziali di accesso Amazon ECR per Docker.\]](http://docs.aws.amazon.com/it_it/cloudshell/latest/userguide/images/docker-cli-tutorial%20-%204-docker-login.png)
**Nota**  
Se la variabile di **AWS\$1REGION** ambiente non è impostata nel tuo CloudShell o desideri interagire con le risorse in altri Regioni AWS, esegui il seguente comando:  

   ```
   AWS_REGION=<your-desired-region>
   ```

1. Etichetta l'immagine con il repository Amazon ECR di destinazione e poi inviala a tale repository.

   ```
   docker tag test-container ${ECR_URL}/${ECR_REPO_NAME}
   docker push ${ECR_URL}/${ECR_REPO_NAME}
   ```  
![\[Immagine del comando usato per etichettare l'immagine con il repository Amazon ECR di destinazione.\]](http://docs.aws.amazon.com/it_it/cloudshell/latest/userguide/images/docker-cli-tutorial%20-%205-docker-push%20(redacted).png)

   Se riscontri errori o riscontri problemi durante il tentativo di completare questo tutorial, consulta la sezione [Risoluzione dei problemi](https://docs.aws.amazon.com/cloudshell/latest/userguide/troubleshooting.html) di questa guida per ricevere assistenza.

## Eliminazione
<a name="clean-up-docker-cli"></a>

Ora hai distribuito con successo il tuo contenitore Docker nel tuo repository Amazon ECR. Per rimuovere i file creati in questo tutorial dal tuo AWS CloudShell ambiente, esegui il comando seguente.
+ 

  ```
  cd ~
  rm -rf ~/docker-cli-tutorial
  ```
+ Elimina il repository Amazon ECR.

  ```
  aws ecr delete-repository --force --repository-name ${ECR_REPO_NAME}
  ```