Memecahkan masalah perintah dan masalah Docker saat menggunakan Amazon ECR - Amazon ECR

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

Memecahkan masalah perintah dan masalah Docker saat menggunakan Amazon ECR

Dalam beberapa kasus, menjalankan perintah Docker terhadap Amazon ECR dapat mengakibatkan pesan kesalahan. Beberapa pesan kesalahan umum dan kemungkinan solusi dijelaskan di bawah ini.

Log Docker tidak berisi pesan kesalahan yang diharapkan

Untuk mulai men-debug masalah terkait Docker, mulailah dengan mengaktifkan output debugging Docker pada daemon Docker yang berjalan pada instance host Anda. Jika Anda menggunakan gambar yang diambil dari Amazon ECR pada instans container Amazon ECS, lihat Mengonfigurasi keluaran verbose dari daemon Docker di Panduan Pengembang Layanan Amazon Elastic Container.

Kesalahan: "Verifikasi Sistem Berkas Gagal" atau "404: Citra Tidak Ditemukan" saat menarik citra dari repositori Amazon ECR

Anda mungkin menerima kesalahan Filesystem verification failed ketika menggunakan perintah docker pull untuk menarik citra dari repositori Amazon ECR dengan Docker versi 1.9 atau di atasnya. Anda mungkin menerima kesalahan 404: Image not found saat Anda menggunakan Docker versi sebelum 1.9.

Beberapa kemungkinan alasan dan penjelasannya diberikan di bawah ini.

Disk lokal penuh

Jika disk lokal yang Anda jalankan docker pull penuh, maka hash SHA-1 yang dihitung pada file lokal mungkin berbeda dari yang dihitung oleh Amazon ECR. Periksa apakah disk lokal Anda memiliki cukup ruang kosong untuk menyimpan citra Docker yang Anda tarik. Anda juga dapat menghapus citra lama untuk memberi ruang bagi yang baru. Gunakan perintah docker images untuk melihat daftar semua citra Docker yang diunduh secara lokal, bersama dengan ukurannya.

Client tidak dapat terhubung ke repositori jarak jauh karena kesalahan jaringan

Panggilan ke repositori Amazon ECR memerlukan koneksi internet yang berfungsi. Verifikasi pengaturan jaringan Anda, dan verifikasi bahwa alat dan aplikasi lain dapat mengakses sumber daya di internet. Jika Anda menjalankan docker pull pada instans Amazon EC2 di subnet pribadi, verifikasi bahwa subnet memiliki rute ke internet. Gunakan server penerjemahan alamat jaringan (NAT) atau gateway NAT terkelola.

Saat ini, panggilan ke repositori Amazon ECR juga memerlukan akses jaringan melalui firewall perusahaan Anda ke Amazon Simple Storage Service (Amazon S3). Jika organisasi Anda menggunakan perangkat lunak firewall atau perangkat NAT yang memungkinkan titik akhir layanan, pastikan bahwa titik akhir layanan Amazon S3 untuk Wilayah Anda saat ini diperbolehkan.

Jika Anda menggunakan Docker di belakang proksi HTTP, Anda dapat mengonfigurasi Docker dengan pengaturan proksi yang sesuai. Untuk informasi selengkapnya, lihat Proksi HTTP dalam dokumentasi Docker.

Kesalahan: "Verifikasi Lapisan Sistem Berkas Gagal" saat menarik citra dari Amazon ECR

Anda mungkin menerima kesalahan image image-name not found saat menarik citra menggunakan perintah docker pull. Jika Anda memeriksa log Docker, Anda mungkin melihat kesalahan seperti berikut ini:

filesystem layer verification failed for digest sha256:2b96f...

Kesalahan ini menunjukkan bahwa satu atau beberapa lapisan untuk citra Anda gagal mengunduh. Beberapa kemungkinan alasan dan penjelasannya diberikan di bawah ini.

Anda menggunakan Docker versi lama

Kesalahan ini dapat terjadi dalam persentase kecil kasus saat menggunakan versi Docker kurang dari 1.10. Upgrade client Docker Anda menjadi 1.10 atau lebih tinggi.

Client Anda mengalami kesalahan jaringan atau disk

Disk penuh atau masalah jaringan dapat mencegah pengunduhan satu atau lebih lapisan, seperti yang dibahas sebelumnya tentang pesan Filesystem verification failed. Ikuti rekomendasi di atas untuk memastikan bahwa sistem file Anda tidak penuh, dan bahwa Anda telah mengaktifkan akses ke Amazon S3 dari dalam jaringan Anda.

Kesalahan HTTP 403 atau kesalahan "no basic auth credentials" ketika mendorong ke repositori

Ada kalanya Anda mungkin menerima kesalahan HTTP 403 (Forbidden), atau pesan kesalahan no basic auth credentials dari perintah docker push atau docker pull, bahkan jika Anda telah berhasil diautentikasi ke Docker menggunakan perintah aws ecr get-login-password. Berikut ini adalah beberapa penyebab yang diketahui dari masalah ini:

Anda telah mengautentikasi ke wilayah yang berbeda

Permintaan autentikasi terkait dengan wilayah tertentu, dan tidak dapat digunakan di seluruh wilayah. Misalnya, jika Anda mendapatkan token otorisasi dari US West (Oregon), Anda tidak dapat menggunakannya untuk mengautentikasi terhadap repositori Anda di US East (N. Virginia). Untuk mengatasi masalah ini, pastikan bahwa Anda telah mengambil token autentikasi dari Wilayah yang sama dengan tempat repositori Anda berada. Untuk informasi selengkapnya, lihat Otentikasi registri pribadi di Amazon ECR.

Anda telah mengautentikasi untuk mendorong ke repositori yang tidak memiliki izin

Anda tidak memiliki izin yang diperlukan untuk mendorong ke repositori. Untuk informasi selengkapnya, lihat Kebijakan repositori pribadi di Amazon ECR.

Token Anda kedaluwarsa

Masa kedaluwarsa token otorisasi default untuk token yang diperoleh dengan menggunakan operasi GetAuthorizationToken adalah 12 jam.

Bug di pengelola kredensial wincred

Beberapa versi Docker untuk Windows menggunakan pengelola kredensial yang disebut dengan wincred, yang tidak menangani perintah masuk Docker yang dihasilkan oleh aws ecr get-login-password dengan benar (Untuk informasi selengkapnya, lihat https://github.com/docker/docker/issues/22910). Anda dapat menjalankan perintah masuk Docker yang merupakan output, tetapi ketika Anda mencoba untuk mendorong atau menarik citra, perintah tersebut gagal. Anda dapat bekerja di sekitar bug ini dengan menghapus skema https:// dari argumen registri dalam perintah masuk Docker yang merupakan output dari aws ecr get-login-password. Contoh perintah masuk Docker tanpa skema HTTPS ditampilkan di bawah ini.

docker login -u AWS -p <password> <aws_account_id>.dkr.ecr.<region>.amazonaws.com