Seluruh tabel pada section Referensi ini menggambarkan Docker yang bekerja — perintah yang diketik, instruksi yang ditulis, kunci yang disetel — tetapi dunia nyata selalu menyisipkan pesan-pesan galat di sela-selanya, dan pesan itu datang dari tiga penjuru yang berbeda. Sebuah error Docker tidak cukup dibaca sekadar kalimatnya: kita perlu mengenali keluarganya, membaca arah penulisan output-nya, dan menjalankan urutan pemeriksaan pertama sebelum menyusun hipotesis — disiplin yang kita bangun pada Chapter Strategi Diagnostik. Chapter ini menutup wilayah rujukan dengan kamus lima belas pesan yang paling sering muncul sepanjang Course, masing-masing dengan penyebab dan solusinya.
Anatomi Tiga Keluarga Pesan #
Pesan galat Docker tiba dalam tiga wujud besar. Pertama, Error response from daemon — keluarga runtime: daemon menolak permintaan kita, entah karena nama bentrok, port terpakai, atau image masih dipakai container lain. Kedua, baris ERROR pada output BuildKit — keluarga build: builder gagal mengeksekusi Dockerfile, biasanya karena berkas hilang dari build context atau instruksi salah tulis. Ketiga, yang paling pendiam: container mati tanpa pesan sama sekali dan hanya meninggalkan exit code — keluarga yang kita otopsi lewat docker ps -a dan docker inspect pada Chapter Membaca Container Exit.
Contoh keluarga pertama tampil langsung di terminal begitu perintah ditolak:
$ docker run -d --name web -p 8080:80 nginx:1.29-alpineOutput yang Dihasilkan:
docker: Error response from daemon: Bind for 0.0.0.0:8080 failed: port is already allocated.Urutan Pertolongan Pertama #
Sebelum menyusun hipotesis apa pun, tiga perintah menjadi kotak P3K kita — urutan yang sama dengan Langkah 2 pada kerangka diagnostik. Pertama docker ps -a untuk melihat wajah status setiap container: yang Up, yang Exited beserta angkanya, yang Restarting. Kedua docker logs pada container bermasalah, karena aplikasi hampir selalu sudah menulis penyebab kematiannya sebelum prosesnya mati. Ketiga docker inspect untuk field .State — exit code, waktu berhenti, dan penanda OOMKilled. Ketiganya berjalan dalam satu menit, dan hasilnya menentukan baris kamus mana yang layak kita buka berikutnya.
Kamus Lima Belas Pesan #
Tabel berikut adalah kamus lengkapnya: pesan (atau potongan khasnya), penyebab yang paling sering, dan solusi yang paling produktif. Rujukan chapter dalam italic menunjuk pembahasan tuntasnya di sepanjang Course:
| Pesan | Penyebab | Solusi |
|---|---|---|
Cannot connect to the Docker daemon | Daemon tidak berjalan atau socket tidak terjangkau | Nyalakan layanan daemon; periksa detailnya di Troubleshooting Instalasi |
permission denied ... docker.sock | User kita bukan anggota grup docker | sudo usermod -aG docker budi lalu masuk ulang — materi Mengatur Akses Docker |
Bind for 0.0.0.0:8080 failed: port is already allocated | Port host sudah dipakai proses atau container lain | Ganti port host (-p 8081:80) atau hentikan pemiliknya — Port Publishing |
Conflict. The container name "/web" is already in use | Nama sudah terdaftar pada container berhenti | docker rm web dulu, atau pakai nama lain — Menghapus Container |
image is being used by stopped container | Image masih ditandai dipakai container berhenti | Hapus container pemakainya sebelum docker rmi — Menghapus Image |
no space left on device | Disk host penuh oleh layer, volume, atau build cache | docker system df untuk mengukur, docker system prune untuk membersihkan — Debugging Storage |
pull access denied ... repository does not exist | Image privat tanpa login, atau nama salah tulis | docker login lalu tarik ulang; cek ejaan namespace — Login dan Authentication |
You have reached your pull rate limit (429) | Kuota tarik habis: anonim 100/6 jam, plan Personal 200/6 jam | Login dengan akun gratis, tunggu jendela berikutnya, atau pasang mirror — Docker Hub dan Registry Mirror |
manifest unknown | Tag tidak ada di registry atau sudah dihapus | Verifikasi tag di halaman image; pin digest untuk kepastian — Memahami Image Tag dan Image Digest |
exec format error | Arsitektur biner tidak cocok dengan host (amd64 vs arm64) | Build ulang dengan --platform yang sesuai — Target Platform |
Read-only file system | Rootfs container dimount read-only dan aplikasi mencoba menulis | Tambahkan --tmpfs atau volume pada titik tulisnya — Read-Only Filesystem dan tmpfs Mount |
network ... not found | Network dirujuk tapi sudah dihapus atau beda mesin | docker network create ulang, atau bersihkan rujukan lama — Debugging Network |
failed to compute cache key: ... not found | Berkas COPY tidak ada di build context — tersaring .dockerignore | Periksa path dan aturan .dockerignore — .dockerignore dan Build Context |
... requires a CPU with AVX support | Image butuh instruksi CPU yang tidak dimiliki host lama | Ganti image atau versi yang tidak butuh AVX; cek dukungan CPU — Mengatasi Container Crash |
Container ... is not running | docker exec pada container berstatus Exited | docker start dulu, atau docker run baru — Menjalankan Perintah dalam Container |
Lima belas baris tersebut menutupi hampir seluruh kejadian yang kita temui sepanjang Course, dan pola membacanya selalu sama: kenali keluarganya, baca dari baris terbawah, jalankan P3K tiga perintah, lalu buka baris kamus yang cocok. Sisanya adalah pekerjaan hipotesis yang sudah kita latih pada Chapter Mengatasi Build Gagal dan Mengatasi Container Crash. Dengan kamus ini, satu wilayah terakhir menanti untuk menutup section Referensi: istilah-istilah yang muncul berulang kali di sepanjang Course dan perlu satu tempat definisi yang pasti. Chapter berikutnya, Glossary, menghimpun tujuh puluh dua istilah Docker dari A sampai Z.
Referensi #
- Download rate limit — aturan kuota tarik Docker Hub dan cara mengatasinya.
- docker run reference — flag yang dikutip pada solusi baris kamus.
- Docker Hub — login, akun Personal, dan manajemen repository.