

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

# Risoluzione dei problemi AWS IoT Greengrass in un contenitore Docker
<a name="docker-troubleshooting"></a>

Utilizza le seguenti informazioni per aiutarti a risolvere i problemi relativi all'esecuzione AWS IoT Greengrass in un contenitore Docker e per eseguire il debug dei problemi AWS IoT Greengrass nel contenitore Docker.

**Topics**
+ [Risoluzione dei problemi relativi all'esecuzione del contenitore Docker](#troubleshooting-container-errors)
+ [Esecuzione del debug in un contenitore Docker AWS IoT Greengrass](#debugging-greengrass-in-docker)

## Risoluzione dei problemi relativi all'esecuzione del contenitore Docker
<a name="troubleshooting-container-errors"></a>

Utilizza le seguenti informazioni per risolvere i problemi relativi all'esecuzione AWS IoT Greengrass in un contenitore Docker.

**Topics**
+ [Errore: impossibile eseguire un accesso interattivo da un dispositivo non TTY](#docker-troubleshootin-ecr-get-login-password)
+ [Errore: opzioni sconosciute: - no-include-email](#docker-troubleshooting-cli-version)
+ [Errore: un firewall sta bloccando la condivisione di file tra finestre e contenitori.](#docker-troubleshooting-firewall)
+ [Errore: si è verificato un errore (AccessDeniedException) durante la chiamata dell' GetAuthorizationToken operazione: User: arn:aws:iam: :user/ <user-name>non *account-id* è autorizzato a eseguire: ecr: on resource: \$1 GetAuthorizationToken](#docker-troubleshooting-ecr-perms)
+ [Errore: hai raggiunto il limite di pull rate](#docker-troubleshooting-too-many-requests)

### Errore: impossibile eseguire un accesso interattivo da un dispositivo non TTY
<a name="docker-troubleshootin-ecr-get-login-password"></a>

Questo errore può verificarsi quando si esegue il comando. `aws ecr get-login-password` Assicurati di aver installato la versione 2 o la AWS CLI versione 1 più recente. Ti consigliamo di utilizzare la AWS CLI versione 2. Per ulteriori informazioni, consulta [Installazione dell’ AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) nella *Guida per l’utente dell’AWS Command Line Interface *.

### Errore: opzioni sconosciute: - no-include-email
<a name="docker-troubleshooting-cli-version"></a>

Questo errore può verificarsi quando si esegue il `aws ecr get-login` comando. Assicurati di avere installata la AWS CLI versione più recente (ad esempio, Run:`pip install awscli --upgrade --user`). Per ulteriori informazioni, vedere [Installazione di AWS Command Line Interface su Microsoft Windows](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html) nella *Guida per l'AWS Command Line Interface utente*.

### Errore: un firewall sta bloccando la condivisione di file tra finestre e contenitori.
<a name="docker-troubleshooting-firewall"></a>

Potresti ricevere questo errore o un `Firewall Detected` messaggio quando esegui Docker su un computer Windows. Questo errore può inoltre verificarsi se sei connesso a una rete privata virtuale (VPN, Virtual Private Network) e le impostazioni di rete impediscono il montaggio dell'unità condivisa. In tal caso, disattivare la rete VPN e riavviare il container Docker.

### Errore: si è verificato un errore (AccessDeniedException) durante la chiamata dell' GetAuthorizationToken operazione: User: arn:aws:iam: :user/ <user-name>non *account-id* è autorizzato a eseguire: ecr: on resource: \$1 GetAuthorizationToken
<a name="docker-troubleshooting-ecr-perms"></a>

Potresti ricevere questo errore durante l'esecuzione del `aws ecr get-login-password` comando se non disponi di autorizzazioni sufficienti per accedere a un repository Amazon ECR. *Per ulteriori informazioni, consulta [Amazon ECR Repository Policy Examples e Accessing](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) [One Amazon ECR Repository nella Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security_iam_id-based-policy-examples.html) User Guide.*

### Errore: hai raggiunto il limite di pull rate
<a name="docker-troubleshooting-too-many-requests"></a>

Docker Hub limita il numero di richieste pull che gli utenti anonimi e gratuiti di Docker Hub possono effettuare. Se superi i limiti di velocità per le pull request anonime o gratuite degli utenti, ricevi uno dei seguenti errori: 

  

```
ERROR: toomanyrequests: Too Many Requests.
```

  

```
You have reached your pull rate limit.
```

Per risolvere questi errori, puoi attendere qualche ora prima di provare un'altra pull request. Se prevedi di inviare costantemente un numero elevato di pull request, consulta il [sito Web di Docker Hub](https://www.docker.com/increase-rate-limits) per informazioni sui limiti di velocità e sulle opzioni per l'autenticazione e l'aggiornamento del tuo account Docker. 

## Esecuzione del debug in un contenitore Docker AWS IoT Greengrass
<a name="debugging-greengrass-in-docker"></a>

Per il debug dei problemi relativi a un container Docker, puoi rendere persistenti i log di runtime Greengrass o collegare una shell interattiva al container Docker.

### Mantieni i log Greengrass all'esterno del contenitore Docker
<a name="debugging-docker-persist-logs"></a>

Dopo aver fermato un AWS IoT Greengrass contenitore, puoi usare il seguente `docker cp ` comando per copiare i log di Greengrass dal contenitore Docker in una directory di log temporanea. 

```
docker cp container-id:/greengrass/v2/logs /tmp/logs
```

Per mantenere i log anche dopo l'uscita o la rimozione di un contenitore, è necessario eseguire il contenitore Docker dopo aver montato la AWS IoT Greengrass directory tramite bind. `/greengrass/v2/logs` 

Per montare in modo bind-mount la `/greengrass/v2/logs` directory, esegui una delle seguenti operazioni quando esegui un nuovo contenitore Docker. AWS IoT Greengrass 
+ Includi `-v /tmp/logs:/greengrass/v2/logs:ro` nel tuo comando. `docker run`

  Modifica il `volumes` blocco nel file Compose per includere la riga seguente prima di eseguire il `docker-compose up` comando.

  ```
  volumes:
   - /tmp/logs:/greengrass/v2/logs:ro
  ```

Puoi quindi controllare i log `/tmp/logs` sul tuo host per vedere i log di Greengrass AWS IoT Greengrass mentre è in esecuzione all'interno del contenitore Docker.

Per informazioni sull'esecuzione dei contenitori Greengrass Docker, vedere e [Esegui AWS IoT Greengrass in Docker con provisioning manuale](run-greengrass-docker-manual-provisioning.md) [Esegui AWS IoT Greengrass in Docker con provisioning automatico](run-greengrass-docker-automatic-provisioning.md)

### Collega una shell interattiva al contenitore Docker
<a name="debugging-docker-attach-shell"></a>

Quando esegui comandi all'interno del contenitore Docker, tali comandi non vengono acquisiti nei log Docker. `docker exec` La registrazione dei comandi nei registri Docker può aiutarti a esaminare lo stato del contenitore Greengrass Docker. Esegui una delle seguenti operazioni:
+ Esegui il comando seguente in un terminale separato per collegare l'input, l'output e l'errore standard del tuo terminale al contenitore in esecuzione. Ciò consente di visualizzare e controllare il contenitore Docker dal terminale corrente.

  ```
  docker attach container-id
  ```
+ Esegui il comando seguente in un terminale separato. Ciò consente di eseguire i comandi in modalità interattiva, anche se il contenitore non è collegato.

  ```
  docker exec -it container-id sh -c "command > /proc/1/fd/1"
  ```

Per una AWS IoT Greengrass risoluzione generale dei problemi, vedere[Risoluzione dei problemi AWS IoT Greengrass V2](troubleshooting.md).