CannotPullContainer kesalahan tugas di Amazon ECS - Amazon Elastic Container Service

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

CannotPullContainer kesalahan tugas di Amazon ECS

Kesalahan berikut menunjukkan bahwa tugas gagal dimulai karena Amazon ECS tidak dapat mengambil gambar kontainer yang ditentukan.

catatan

Versi platform 1.4 Fargate memotong pesan kesalahan yang panjang.

Tugas tidak dapat menarik gambar. Periksa apakah peran memiliki izin untuk menarik gambar dari registri

Kesalahan ini menunjukkan bahwa tugas tidak dapat menarik gambar yang ditentukan dalam definisi tugas karena masalah izin. Ada informasi tambahan dalam pesan kesalahan yang menyediakan gambar atau peran yang menyebabkan masalah.

“Respons kesalahan dari daemon: akses tarik ditolak untuk repositori tidak ada atau mungkin memerlukan 'docker login': denied: User: roLearn tidak diizinkan untuk melakukan: ecr: on resource: image karena tidak ada kebijakan berbasis identitas yang mengizinkan ecr BatchGetImage : action.” BatchGetImage

Untuk menyelesaikan masalah ini:

  1. Periksa apakah gambar ada di irepository. Untuk informasi tentang melihat gambar Anda, lihat Melihat detail gambar di Amazon ECR di Panduan Pengguna Amazon Elastic Container Registry.

  2. Verifikasi bahwa role-arn memiliki izin yang benar untuk menarik gambar.

    Untuk informasi tentang cara melihat dan mengubah peran, lihat Memodifikasi peran dalam Panduan AWS Identity and Access Management Penggunaan.

    Tugas menggunakan salah satu peran berikut:

Tugas tidak dapat menarik gambar. Periksa konfigurasi jaringan Anda

Kesalahan ini menunjukkan bahwa tugas tidak dapat terhubung ke Amazon ECR.

Untuk informasi tentang cara memverifikasi dan menyelesaikan masalah, lihatMemverifikasi Amazon ECS menghentikan konektivitas tugas.

Kesalahan API (500): Dapatkan https://111122223333.dkr.ecr.us-east-1.amazonaws.com/v2/: net/http: permintaan dibatalkan sambil menunggu koneksi

Kesalahan ini menunjukkan bahwa koneksi habis waktu, karena rute ke internet tidak ada.

Untuk mengatasi masalah ini, Anda dapat:

  • Untuk tugas di subnet publik, tentukan DIAKTIFKAN untuk Tetapkan secara otomatis IP publik saat meluncurkan tugas. Untuk informasi selengkapnya, lihat Menjalankan aplikasi sebagai tugas Amazon ECS.

  • Untuk tugas di subnet privat, tentukan NONAKTIF untuk Tetapkan secara otomatis IP publik saat meluncurkan tugas, dan mengonfigurasi gateway NAT di VPC Anda untuk merutekan permintaan menuju internet. Untuk informasi lebih lanjut, lihat NAT Gateway di Panduan Pengguna Amazon VPC.

Kesalahan API

Kesalahan ini menunjukkan bahwa ada masalah koneksi dengan titik akhir Amazon ECR.

Untuk informasi tentang cara mengatasi masalah ini, lihat Bagaimana cara mengatasi kesalahan Amazon ECR "CannotPullContainerError: Kesalahan API” di Amazon ECS di situs web. AWS Support

tulis /var/lib/docker/tmp/ GetImage Blob111111111: tidak ada ruang tersisa di perangkat

Kesalahan ini menunjukkan bahwa ruang disk tidak mencukupi.

Untuk mengatasi masalah ini, kosongkan ruang disk.

Jika Anda menggunakan AMI Amazon ECS yang dioptimalkan, Anda dapat menggunakan perintah berikut untuk mengambil 20 file terbesar di sistem file Anda:

du -Sh / | sort -rh | head -20

Contoh output:

5.7G    /var/lib/docker/containers/50501b5f4cbf90b406e0ca60bf4e6d4ec8f773a6c1d2b451ed8e0195418ad0d2
1.2G    /var/log/ecs
594M    /var/lib/docker/devicemapper/mnt/c8e3010e36ce4c089bf286a623699f5233097ca126ebd5a700af023a5127633d/rootfs/data/logs
...

Dalam beberapa kasus, volume root mungkin diisi oleh wadah yang sedang berjalan. Jika kontainer menggunakan driver log json-file default tanpa batas max-size, terdapat kemungkinan bahwa berkas log bertanggung jawab pada sebagian besar ruang yang digunakan. Anda dapat menggunakan perintah docker ps untuk memverifikasi kontainer yang menggunakan ruang dengan pemetaan nama direktori dari output di atas untuk ID kontainer. Sebagai contoh:

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 50501b5f4cbf amazon/amazon-ecs-agent:latest "/agent" 4 days ago Up 4 days ecs-agent

Secara default, saat menggunakan driver log json-file, Docker menangkap output standar (dan kesalahan standar) dari semua kontainer Anda dan menulis output standar dan kesalahan dalam file menggunakan format JSON. Anda dapat mengatur max-size sebagai pilihan pengandar catatan, yang dapat mencegah berkas log mengambil terlalu banyak ruang. Untuk informasi selengkapnya, lihat Konfigurasi pengandar pencatatan dalam dokumentasi Docker.

Berikut ini adalah cuplikan ketentuan kontainer yang menunjukkan bagaimana menggunakan pilihan ini:

{ "log-driver": "json-file", "log-opts": { "max-size": "256m" } }

Alternatifnya, jika log kontainer Anda menghabiskan terlalu banyak ruang disk, adalah dengan menggunakan driver awslogs log. Driver awslogs log mengirimkan log ke CloudWatch, yang membebaskan ruang disk yang seharusnya digunakan untuk log kontainer Anda pada instance kontainer. Untuk informasi selengkapnya, lihat Kirim log Amazon ECS ke CloudWatch .

ERROR: toomanyrequests: Terlalu Banyak Permintaan atau Anda telah mencapai batas tingkat tarik Anda.

Kesalahan ini menunjukkan bahwa ada pembatasan laju Docker Hub.

Jika Anda menerima salah satu kesalahan berikut, kemungkinan Anda mencapai tingkat batasan Docker Hub:

Untuk informasi selengkapnya tentang tingkat batasan Docker Hub, lihat Memahami pembatasan pada tingkat Docker Hub.

Jika Anda telah meningkatkan batas laju Docker Hub dan Anda perlu mengautentikasi tarikan Docker untuk instance container Anda, lihat Autentikasi registri pribadi untuk instance container.

Tanggapan kesalahan dari daemon: Dapatkan url: net/http: permintaan dibatalkan sambil menunggu koneksi

Kesalahan ini menunjukkan bahwa koneksi habis waktu, karena rute ke internet tidak ada.

Untuk mengatasi masalah ini, Anda dapat:

  • Untuk tugas di subnet publik, tentukan DIAKTIFKAN untuk Tetapkan secara otomatis IP publik saat meluncurkan tugas. Untuk informasi selengkapnya, lihat Menjalankan aplikasi sebagai tugas Amazon ECS.

  • Untuk tugas di subnet privat, tentukan NONAKTIF untuk Tetapkan secara otomatis IP publik saat meluncurkan tugas, dan mengonfigurasi gateway NAT di VPC Anda untuk merutekan permintaan menuju internet. Untuk informasi lebih lanjut, lihat NAT Gateway di Panduan Pengguna Amazon VPC.

ref pull telah dicoba ulang 1 kali: gagal menyalin:: gagal buka httpReaderSeeker: kode status tak terduga

Kesalahan ini menunjukkan bahwa ada kegagalan saat menyalin gambar.

Untuk mengatasi masalah ini, tinjau salah satu artikel berikut:

akses tarik ditolak

Kesalahan ini menunjukkan bahwa tidak ada akses ke gambar.

Untuk mengatasi masalah ini, Anda mungkin perlu mengautentikasi klien Docker Anda dengan Amazon ECR Untuk informasi selengkapnya, lihat Autentikasi registri pribadi di Panduan Pengguna Amazon ECR.

perintah tarik gagal: panik: kesalahan runtime: alamat memori tidak valid atau dereferensi pointer nil

Kesalahan ini menunjukkan bahwa tidak ada akses ke gambar karena alamat memori yang tidak valid atau dereferensi pointer nil.

Untuk menyelesaikan masalah ini:

  • Periksa apakah Anda memiliki aturan grup keamanan untuk mencapai Amazon S3.

  • Saat Anda menggunakan titik akhir gateway, Anda harus menambahkan rute di tabel rute untuk mengakses titik akhir.

kesalahan menarik gambar conf/error menarik konfigurasi gambar

Kesalahan ini menunjukkan batas tarif telah tercapai atau ada kesalahan jaringan:

Untuk mengatasi masalah ini, lihat Bagaimana cara mengatasi kesalahan "CannotPullContainerError" di Tugas Jenis Peluncuran Amazon ECS EC2 saya.

Konteks dibatalkan

Kesalahan ini menunjukkan bahwa konteksnya dibatalkan.

Penyebab umum kesalahan ini adalah karena VPC yang digunakan tugas Anda tidak memiliki rute untuk menarik gambar penampung dari Amazon ECR.