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
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.
Topik
Memecahkan masalah dengan menjalankan kontainer Docker
Gunakan informasi berikut untuk membantu memecahkan masalah dengan berjalan AWS IoT Greengrass di wadah Docker.
Topik
- Kesalahan: Tidak dapat melakukan login interaktif dari TTY non-perangkat
- Kesalahan: Opsi tidak dikenal: - no-include-email
- Kesalahan: Firewall memblokir berbagi file antara windows dan kontainer.
- Kesalahan: Terjadi kesalahan (AccessDeniedException) saat memanggil GetAuthorizationToken operasi: User: arn:aws:iam: ::user/ account-id <user-name>tidak diizinkan untuk melakukan: ecr: on resource: * GetAuthorizationToken
- Kesalahan: Anda telah mencapai batas kecepatan tarik
Kesalahan: Tidak dapat melakukan login interaktif dari TTY non-perangkat
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 dalam Panduan Pengguna AWS Command Line Interface .
Kesalahan: Opsi tidak dikenal: - no-include-email
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 di Panduan AWS Command Line Interface Pengguna.
Kesalahan: Firewall memblokir berbagi file antara windows dan kontainer.
Anda mungkin menerima kesalahan ini atau Firewall Detected
saat menjalankan Docker di komputer Windows. Ini juga dapat terjadi jika Anda masuk di jaringan pribadi virtual (VPN) dan pengaturan jaringan Anda mencegah drive bersama dipasang. Dalam situasi itu, matikan VPN dan jalankan kembali wadah 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: * GetAuthorizationToken
Anda mungkin menerima kesalahan ini saat menjalankan aws ecr get-login-password
perintah jika Anda tidak memiliki izin yang cukup untuk mengakses ECR repositori Amazon. Untuk informasi selengkapnya, lihat Contoh Kebijakan ECR Repositori Amazon dan Mengakses Satu ECR Repositori Amazon di Panduan Pengguna Amazon. ECR
Kesalahan: Anda telah mencapai batas kecepatan tarik
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
Debugging AWS IoT Greengrass dalam wadah Docker
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
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 mengikat direktori.
/logs/greengrass/v2
Untuk mengikat
direktori, lakukan salah satu hal berikut saat Anda menjalankan wadah Docker baru AWS IoT Greengrass .
/logs/greengrass/v2
-
Sertakan
-v
di perintah/tmp/logs
:
/logs:ro/greengrass/v2
docker run
.Ubah blok
volumes
dalam file Compose untuk menyertakan baris berikut sebelum Anda menjalankan perintahdocker-compose up
.volumes: -
/tmp/logs
:
/logs:ro/greengrass/v2
Anda kemudian dapat memeriksa log Anda
di host Anda untuk melihat log Greengrass AWS IoT Greengrass saat berjalan di dalam wadah Docker./tmp/logs
Untuk informasi tentang menjalankan kontainer Docker Greengrass, lihat Jalankan AWS IoT Greengrass di Docker dengan penyediaan manual dan Jalankan AWS IoT Greengrass di Docker dengan penyediaan otomatis
Lampirkan shell interaktif ke kontainer Docker
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 hal berikut ini:
-
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