

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Solução de problemas AWS IoT Greengrass em um contêiner Docker
<a name="docker-troubleshooting"></a>

Use as informações a seguir para ajudá-lo a solucionar problemas com a execução AWS IoT Greengrass em um contêiner do Docker e para depurar problemas AWS IoT Greengrass no contêiner do Docker.

**Topics**
+ [Solução de problemas ao executar o contêiner do Docker](#troubleshooting-container-errors)
+ [Depuração em um contêiner AWS IoT Greengrass Docker](#debugging-greengrass-in-docker)

## Solução de problemas ao executar o contêiner do Docker
<a name="troubleshooting-container-errors"></a>

Use as informações a seguir para ajudar a solucionar problemas com a execução AWS IoT Greengrass em um contêiner do Docker.

**Topics**
+ [Erro: não é possível realizar um login interativo em um dispositivo não TTY](#docker-troubleshootin-ecr-get-login-password)
+ [Erro: Opções desconhecidas: - no-include-email](#docker-troubleshooting-cli-version)
+ [Erro: Um firewall está bloqueando o compartilhamento de arquivos entre janelas e os contêineres.](#docker-troubleshooting-firewall)
+ [Erro: ocorreu um erro (AccessDeniedException) ao chamar a GetAuthorizationToken operação: Usuário: arn:aws:iam: ::user/ <user-name>não *account-id* está autorizado a executar: ecr: on resource: \$1 GetAuthorizationToken](#docker-troubleshooting-ecr-perms)
+ [Erro: você atingiu seu limite de taxa de pull](#docker-troubleshooting-too-many-requests)

### Erro: não é possível realizar um login interativo em um dispositivo não TTY
<a name="docker-troubleshootin-ecr-get-login-password"></a>

Este erro pode ocorrer ao executar o comando `aws ecr get-login-password`. Verifique se você instalou a AWS CLI versão mais recente 2 ou a versão 1. Recomendamos que você use a AWS CLI versão 2. Para obter mais informações, consulte [Instalar a AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) no *Guia do usuário da AWS Command Line Interface *.

### Erro: Opções desconhecidas: - no-include-email
<a name="docker-troubleshooting-cli-version"></a>

Este erro pode ocorrer ao executar o comando `aws ecr get-login`. Verifique se você tem a AWS CLI versão mais recente instalada (por exemplo, Executar:`pip install awscli --upgrade --user`). Para obter mais informações, consulte [Instalando o AWS Command Line Interface no Microsoft Windows](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html) no *Guia AWS Command Line Interface do Usuário*.

### Erro: Um firewall está bloqueando o compartilhamento de arquivos entre janelas e os contêineres.
<a name="docker-troubleshooting-firewall"></a>

Esse erro ou uma mensagem `Firewall Detected` podem ser recebidos ao executar o Docker em um computador Windows. Esse erro também poderá ocorrer se você estiver conectado em uma rede privada virtual (VPN), e as configurações de rede estiverem impedindo a montagem da unidade compartilhada. Nesse caso, desative a VPN e execute novamente o contêiner do Docker.

### Erro: ocorreu um erro (AccessDeniedException) ao chamar a GetAuthorizationToken operação: Usuário: arn:aws:iam: ::user/ <user-name>não *account-id* está autorizado a executar: ecr: on resource: \$1 GetAuthorizationToken
<a name="docker-troubleshooting-ecr-perms"></a>

É possível que você receba esse erro ao executar o comando `aws ecr get-login-password` se não tiver permissões suficientes para acessar um repositório do Amazon ECR. Para obter mais informações, consulte [Exemplos de políticas de repositório do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) e [Como acessar um repositório do Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security_iam_id-based-policy-examples.html) no *Guia do usuário do Amazon ECR*.

### Erro: você atingiu seu limite de taxa de pull
<a name="docker-troubleshooting-too-many-requests"></a>

O Docker Hub limita o número de solicitações de pull que usuários anônimos e gratuitos do Docker Hub podem fazer. Se você exceder os limites de taxa para solicitações de pull de usuários anônimos ou gratuitos, você receberá um dos seguintes erros: 

  

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

  

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

Para resolver esses erros, espere algumas horas antes de tentar outra solicitação de pull. Se você planeja enviar um grande número de solicitações de pull, consulte o [site do Docker Hub](https://www.docker.com/increase-rate-limits) para informações sobre limites de taxa e opções para autenticar e atualizar sua conta do Docker. 

## Depuração em um contêiner AWS IoT Greengrass Docker
<a name="debugging-greengrass-in-docker"></a>

Para depurar problemas com um contêiner do Docker, você pode manter os logs de runtime do Greengrass ou anexar um shell interativo ao contêiner do Docker.

### Manter os logs do Greengrass fora do contêiner do Docker
<a name="debugging-docker-persist-logs"></a>

Depois de parar um AWS IoT Greengrass contêiner, você pode usar o `docker cp ` comando a seguir para copiar os registros do Greengrass do contêiner Docker para um diretório de registros temporário. 

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

Para manter os registros mesmo após a saída ou remoção de um contêiner, você deve executar o contêiner do AWS IoT Greengrass Docker após a montagem do diretório. `/greengrass/v2/logs` 

Para vincular e montar o `/greengrass/v2/logs` diretório, faça o seguinte ao executar um novo AWS IoT Greengrass contêiner do Docker.
+ Inclua `-v /tmp/logs:/greengrass/v2/logs:ro` no comando `docker run`.

  Modifique o bloco `volumes` no arquivo Compose para incluir a linha a seguir antes de executar o comando `docker-compose up`.

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

Em seguida, você pode verificar seus registros `/tmp/logs` em seu host para ver os registros do Greengrass enquanto AWS IoT Greengrass está sendo executado dentro do contêiner do Docker.

Para informações sobre a execução de contêineres do Docker do Greengrass, consulte [Execute AWS IoT Greengrass no Docker com provisionamento manual](run-greengrass-docker-manual-provisioning.md) e [Execute AWS IoT Greengrass no Docker com provisionamento automático](run-greengrass-docker-automatic-provisioning.md)

### Anexar um shell interativo ao contêiner do Docker
<a name="debugging-docker-attach-shell"></a>

Quando você usa `docker exec` para executar comandos dentro do contêiner do Docker, esses comandos não são capturados nos logs do Docker. Registrar seus comandos nos logs do Docker ajuda a investigar o estado do contêiner do Docker do Greengrass. Execute um destes procedimentos:
+ Execute o seguinte comando em um terminal separado para conectar a entrada, a saída e o erro padrão do terminal ao contêiner em execução. Isso permite visualizar e controlar o contêiner do Docker a partir do terminal atual.

  ```
  docker attach container-id
  ```
+ Execute o comando a seguir em um terminal separado. Isso permite executar os comandos no modo interativo, mesmo que o contêiner não esteja conectado.

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

Para AWS IoT Greengrass solução geral de problemas, consulte[Solução de problemas AWS IoT Greengrass V2](troubleshooting.md).