

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Pemecahan masalah AWS IoT Greengrass dalam wadah Docker
<a name="docker-troubleshooting"></a>

Gunakan informasi berikut untuk membantu Anda memecahkan masalah dengan berjalan AWS IoT Greengrass di wadah Docker dan untuk men-debug masalah AWS IoT Greengrass di wadah Docker.

**Topics**
+ [Memecahkan masalah dengan menjalankan kontainer Docker](#troubleshooting-container-errors)
+ [Debugging AWS IoT Greengrass dalam wadah Docker](#debugging-greengrass-in-docker)

## Memecahkan masalah dengan menjalankan kontainer Docker
<a name="troubleshooting-container-errors"></a>

Gunakan informasi berikut untuk membantu memecahkan masalah dengan berjalan AWS IoT Greengrass di wadah Docker.

**Topics**
+ [Kesalahan: Tidak dapat melakukan login interaktif dari perangkat non TTY](#docker-troubleshootin-ecr-get-login-password)
+ [Kesalahan: Opsi tidak diketahui: - no-include-email](#docker-troubleshooting-cli-version)
+ [Kesalahan: Firewall memblokir berbagi file antara windows dan kontainer.](#docker-troubleshooting-firewall)
+ [Kesalahan: Terjadi kesalahan (AccessDeniedException) saat memanggil GetAuthorizationToken operasi: User: arn:aws:iam: ::user/ *account-id* <user-name>tidak diizinkan untuk melakukan: ecr: on resource: \$1 GetAuthorizationToken](#docker-troubleshooting-ecr-perms)
+ [Kesalahan: Anda telah mencapai batas kecepatan tarik](#docker-troubleshooting-too-many-requests)

### Kesalahan: Tidak dapat melakukan login interaktif dari perangkat non TTY
<a name="docker-troubleshootin-ecr-get-login-password"></a>

Kesalahan ini dapat terjadi ketika Anda menjalankan perintah `aws ecr get-login-password`. Pastikan Anda menginstal AWS CLI versi terbaru 2 atau versi 1. Kami menyarankan Anda menggunakan AWS CLI versi 2. Untuk informasi selengkapnya, lihat [Menginstal AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) dalam *Panduan Pengguna AWS Command Line Interface *.

### Kesalahan: Opsi tidak diketahui: - no-include-email
<a name="docker-troubleshooting-cli-version"></a>

Kesalahan ini dapat terjadi ketika Anda menjalankan perintah `aws ecr get-login`. Pastikan Anda telah menginstal AWS CLI versi terbaru (misalnya, Jalankan:`pip install awscli --upgrade --user`). Untuk informasi selengkapnya, lihat [AWS Command Line Interface Menginstal Microsoft Windows](https://docs.aws.amazon.com/cli/latest/userguide/awscli-install-windows.html) di *Panduan AWS Command Line Interface Pengguna*.

### Kesalahan: Firewall memblokir berbagi file antara windows dan kontainer.
<a name="docker-troubleshooting-firewall"></a>

Anda mungkin menerima kesalahan ini atau `Firewall Detected` saat menjalankan Docker di komputer Windows. Hal ini juga dapat terjadi jika Anda masuk pada jaringan pribadi virtual (VPN) dan pengaturan jaringan Anda mencegah dipasangnya drive bersama. Dalam situasi itu, matikan VPN dan jalankan kembali kontainer Docker.

### Kesalahan: Terjadi kesalahan (AccessDeniedException) saat memanggil GetAuthorizationToken operasi: User: arn:aws:iam: ::user/ *account-id* <user-name>tidak diizinkan untuk melakukan: ecr: on resource: \$1 GetAuthorizationToken
<a name="docker-troubleshooting-ecr-perms"></a>

Anda mungkin menerima kesalahan ini saat menjalankan `aws ecr get-login-password` jika Anda tidak memiliki izin yang memadai untuk mengakses repositori Amazon ECR. Untuk informasi lebih lanjut, lihat: [Contoh Kebijakan Repositori Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/repository-policy-examples.html) dan [Mengakses Satu Repositori Amazon ECR](https://docs.aws.amazon.com/AmazonECR/latest/userguide/security_iam_id-based-policy-examples.html) di *Panduan Pengguna Amazon ECR*.

### Kesalahan: Anda telah mencapai batas kecepatan tarik
<a name="docker-troubleshooting-too-many-requests"></a>

Docker Hub membatasi jumlah permintaan tarik yang dapat dibuat oleh pengguna anonim dan Free Docker Hub. Jika Anda melebihi batas kecepatan tersebut untuk permintaan tarik pengguna anonim atau gratis, Anda akan menerima salah satu dari kesalahan berikut: 

  

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

  

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

Untuk mengatasi kesalahan ini, Anda dapat menunggu selama beberapa jam sebelum Anda mencoba permintaan tarik lain. Jika Anda berencana untuk secara konsisten mengirimkan sejumlah besar permintaan tarik, lihat [situs web Docker Hub](https://www.docker.com/increase-rate-limits) untuk informasi tentang batas kecepatan, dan opsi untuk mengautentikasi dan meningkatkan akun Docker Anda. 

## Debugging AWS IoT Greengrass dalam wadah Docker
<a name="debugging-greengrass-in-docker"></a>

Untuk men-debug masalah dengan kontainer Docker, Anda dapat mempertahankan log waktu aktif Greengrass atau melampirkan shell interaktif pada kontainer Docker.

### Pertahankan log Greengrass di luar kontainer Docker
<a name="debugging-docker-persist-logs"></a>

Setelah Anda menghentikan AWS IoT Greengrass wadah, Anda dapat menggunakan `docker cp ` perintah berikut untuk menyalin log Greengrass dari wadah Docker ke direktori log sementara. 

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

Untuk mempertahankan log bahkan setelah wadah keluar atau dihapus, Anda harus menjalankan wadah AWS IoT Greengrass Docker setelah memasang direktori. `/greengrass/v2/logs` 

Untuk mengikat-mount `/greengrass/v2/logs` direktori, lakukan salah satu hal berikut saat Anda menjalankan wadah Docker baru AWS IoT Greengrass .
+ Sertakan `-v /tmp/logs:/greengrass/v2/logs:ro` di perintah `docker run`.

  Ubah blok `volumes` dalam file Compose untuk menyertakan baris berikut sebelum Anda menjalankan perintah `docker-compose up`.

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

Anda kemudian dapat memeriksa log Anda `/tmp/logs` di host Anda untuk melihat log Greengrass AWS IoT Greengrass saat berjalan di dalam wadah Docker.

Untuk informasi tentang menjalankan kontainer Docker Greengrass, lihat [Jalankan AWS IoT Greengrass di Docker dengan penyediaan manual](run-greengrass-docker-manual-provisioning.md) dan [Jalankan AWS IoT Greengrass di Docker dengan penyediaan otomatis](run-greengrass-docker-automatic-provisioning.md)

### Lampirkan shell interaktif ke kontainer Docker
<a name="debugging-docker-attach-shell"></a>

Saat Anda menggunakan `docker exec` untuk menjalankan perintah di dalam kontainer Docker, perintah tersebut tidak tertangkap di log Docker. Pencatatan perintah Anda dalam log Docker dapat membantu Anda menyelidiki keadaan kontainer Docker Greengrass. Lakukan salah satu tindakan berikut:
+ Jalankan perintah berikut di terminal terpisah untuk melampirkan standar input, output, dan kesalahan terminal Anda ke kontainer yang sedang berjalan. Hal ini memungkinkan Anda untuk melihat dan mengontrol kontainer Docker dari terminal Anda saat ini.

  ```
  docker attach container-id
  ```
+ Jalankan perintah berikut pada terminal yang terpisah. Hal ini memungkinkan Anda untuk menjalankan perintah Anda dalam mode interaktif, bahkan jika kontainer tidak terlampir.

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

Untuk AWS IoT Greengrass pemecahan masalah umum, lihat. [Pemecahan masalah AWS IoT Greengrass V2](troubleshooting.md)