Docker sangat membantu developer dalam membuat environment aplikasi yang konsisten. Dengan Docker, aplikasi bisa dijalankan di laptop lokal, server staging, maupun production dengan konfigurasi yang relatif sama. Developer tidak perlu menginstall semua dependency langsung di sistem operasi utama karena aplikasi berjalan di dalam container.
Kunci troubleshooting Docker adalah membaca log, mengecek status container, memahami mapping port, memeriksa Dockerfile, memeriksa
, dan memastikan resource server cukup.
1. Container Exited
Container Exited adalah kondisi ketika container sudah dibuat tetapi tidak lagi berjalan. Statusnya biasanya terlihat seperti
,
, atau kode lain saat menjalankan perintah:
Penyebab
Contoh paling umum: container berbasis Node.js menjalankan
, tetapi script
tidak ada di
. Akibatnya, proses utama gagal dan container langsung berhenti.
Solusi
Perhatikan bagian
,
,
, dan
.
Contoh Perbaikan
Pastikan
memiliki script:
Cara Mencegah
Gunakan
di Docker Compose jika container bergantung pada service lain, tetapi tetap tambahkan mekanisme retry karena
tidak selalu menunggu service benar-benar siap.
2. Permission Denied
Penyebab
Solusi
Jika user lokal tidak bisa menjalankan Docker tanpa
, tambahkan user ke group Docker:
Contoh Perbaikan di Dockerfile
Cara Mencegah
Jangan memberi permission
sembarangan.
3. Port Already Allocated
Penyebab
Port mapping di
bentrok antar-service.
Solusi
Artinya port host
diarahkan ke port container
.
Cara Mencegah
Gunakan
untuk port Compose.
Jalankan
sebelum menjalankan konfigurasi baru jika perlu.
4. Build Failed
Penyebab
Perintah di
mengembalikan exit code non-zero.
Solusi
Pastikan file
benar-benar ada. Jika tidak ada, gunakan:
Cek
. Jangan sampai file penting ikut diabaikan:
Jangan masukkan file yang dibutuhkan build ke
.
Cara Mencegah
Simpan lock file dependency seperti
,
,
, atau
.
5. Docker Daemon Error
Penyebab
Solusi
Cara Mencegah
6. Compose Error
Penyebab
File
tidak valid.
Environment variable di
tidak ada.
Menggunakan perintah lama
padahal environment memakai
.
Solusi
Cara Mencegah
Jalankan
sebelum deploy.
Simpan
untuk mendokumentasikan variable.
7. Volume Missing
Penyebab
Volume terhapus saat menjalankan
.
Solusi
Jika data hilang setelah
, kemungkinan volume sudah terhapus. Karena itu, hati-hati memakai perintah tersebut di production.
Cara Mencegah
Jangan menjalankan
di production kecuali benar-benar paham risikonya.
8. Bind Mount Error
Penyebab
Jika
di container tertimpa oleh folder host yang tidak punya
, aplikasi bisa gagal.
Solusi
Untuk Node.js, pisahkan
:
Cara Mencegah
9. Too Many Layers
Penyebab
Terlalu banyak instruksi
,
, atau
.
Solusi
Gunakan
:
Cara Mencegah
10. Disk Full
Gejala
Muncul pesan
.
Penyebab
Solusi
Cara Mencegah
11. Image Pull Failed
Penyebab
Solusi
Cara Mencegah
Gunakan tag image yang jelas, bukan asal
.
12. DNS Error
DNS error membuat container tidak bisa resolve domain seperti
,
, atau nama service internal.
Penyebab
Aplikasi memakai
padahal harus memakai nama service.
Solusi
Cara Mencegah
13. Network Bridge Error
Penyebab
Solusi
Cara Mencegah
14. Healthcheck Failed
Penyebab
Solusi
Cara Mencegah
Tambahkan
untuk aplikasi yang butuh waktu startup.
15. Restart Loop
Restart loop terjadi ketika container terus restart berulang-ulang. Biasanya statusnya terlihat seperti
.
Penyebab
Solusi
Cara Mencegah
16. Multi-stage Build Error
Penyebab
Contoh Error
Solusi
Pastikan hasil build memang berada di
. Untuk beberapa framework, output bisa berbeda:
Vite: biasanya
Next.js:
Nuxt:
Angular:
Jika binary butuh library tertentu, final image
atau
mungkin tidak cukup.
Cara Mencegah
Beri nama stage dengan jelas, misalnya
.
Cek output folder build sebelum menulis
.
17. Container Tidak Bisa Mengakses Database
Penyebab
Aplikasi memakai
untuk database.
Solusi
Dari dalam container
,
berarti container
itu sendiri, bukan container database.
Cara Mencegah
18. Container Bisa Jalan tetapi Tidak Bisa Diakses dari Browser
Penyebab
Aplikasi listen hanya ke
di dalam container.
Solusi
Jika aplikasi Node.js, pastikan listen ke
:
Cara Mencegah
19. Docker Compose Environment Variable Tidak Terbaca
Compose bisa membaca variable dari file
, tetapi sering terjadi salah paham antara
untuk Compose dan
untuk aplikasi.
Penyebab
File
berada di folder yang salah.
Aplikasi membutuhkan file
di dalam container.
Solusi
File
:
Cara Mencegah
Pisahkan
Compose dan
aplikasi jika perlu.
Gunakan
.
Selalu validasi dengan
.
20. Dockerfile COPY Gagal
Error
sering terjadi saat Docker tidak menemukan file yang ingin disalin.
Penyebab
mengecualikan file.
Solusi
Pastikan menjalankan build dari folder yang berisi
:
Cara Mencegah
Jangan memasukkan file penting ke
.
21. Docker Compose Service Name Salah
Penyebab
Menggunakan
lalu bingung dengan DNS Compose.
Solusi
Dari service
, host Redis adalah:
Bukan
.
Cara Mencegah
Hindari
jika tidak diperlukan.
22. Docker Image Terlalu Besar
Penyebab
File lokal seperti
,
, log, dan upload ikut tercopy.
Solusi
Gunakan
:
Cara Mencegah
23. Docker Log Terlalu Besar
Penyebab
Solusi
Cara Mencegah
24. Docker Cannot Remove Container
Penyebab
Solusi
Cara Mencegah
25. Docker Network Tidak Bisa Dihapus
Penyebab
Solusi
Cara Mencegah
26. Docker Volume Tidak Bisa Dihapus
Penyebab
Solusi
Cara Mencegah
27. Docker Build Cache Membingungkan
Penyebab
Solusi
Cara Mencegah
28. Docker Container Keluar dengan Exit Code 137
Penyebab
Solusi
Cara Mencegah
29. Docker Container Keluar dengan Exit Code 1
Penyebab
Solusi
Cara Mencegah
30. Docker Compose Depends On Tidak Menunggu Database Ready
Banyak developer mengira
menunggu database siap menerima koneksi. Padahal, dalam banyak kasus,
hanya memastikan container dependency dibuat lebih dulu.
Penyebab
Solusi
Cara Mencegah
31. Docker Compose Orphan Containers
Gejala
Penyebab
Solusi
Cara Mencegah
32. Docker Desktop WSL Error
Penyebab
Solusi
Cara Mencegah
33. Docker Build Lambat
Penyebab
tidak ada.
Solusi
Tambahkan
:
Dengan begitu,
hanya diulang jika
atau lock file berubah.
Cara Mencegah
34. Docker Compose File Tidak Ditemukan
Penyebab
Tidak ada
atau
.
Solusi
Cara Mencegah
35. Docker Secret Bocor ke Image
Ini bukan error runtime biasa, tetapi sangat berbahaya. Secret seperti token, password,
, atau private key bisa tidak sengaja masuk ke image.
Penyebab
menyalin semua file.
tidak mengecualikan
.
Secret ditulis dalam Dockerfile dengan
.
Token digunakan dalam
lalu tersimpan di layer.
Solusi
Tambahkan
:
Cara Mencegah
Jangan copy seluruh folder tanpa
.
36. Docker Entrypoint Error
Penyebab
Solusi
Cara Mencegah
Gunakan
secara hati-hati.
37. Docker Timezone Salah
Penyebab
Environment
tidak diset.
Solusi
Cara Mencegah
Set
jika aplikasi benar-benar membutuhkan local time.
38. Docker Cron Tidak Jalan
Penyebab
Solusi
Cara Mencegah
39. Docker Database Data Hilang Setelah Recreate
Penyebab
Menggunakan
.
Solusi
Cara Mencegah
40. Docker Compose Build Menggunakan Image Lama
Penyebab
Service memakai
tanpa
.
Solusi
Cara Mencegah
Jangan mengandalkan
untuk production.
Checklist Cepat Troubleshooting Docker
1. Cek Container
Perhatikan status container:
,
,
, atau
.
2. Cek Log
3. Cek Konfigurasi Compose
4. Cek Port
5. Cek Disk
6. Cek Network
7. Cek Volume
8. Cek Resource
9. Build Ulang Jika Perlu
10. Bersihkan Resource Tidak Terpakai
Gunakan
hanya jika yakin volume tidak berisi data penting.
Contoh Docker Compose yang Lebih Aman untuk Development
memakai nama service
, bukan
.
Database memakai named volume
.
Port host
diarahkan ke port container
.
dipisahkan agar bind mount tidak menimpa dependency container.
Contoh Dockerfile yang Lebih Rapi untuk Node.js
Tambahkan
:
Praktik Terbaik agar Docker Lebih Stabil
1. Gunakan
Tanpa
, Docker bisa mengirim terlalu banyak file ke build context. Ini membuat build lambat dan berisiko memasukkan file sensitif ke image.
2. Jangan Gunakan
untuk Production
Tag
bisa berubah tanpa disadari. Gunakan tag spesifik seperti:
3. Pisahkan Service Berdasarkan Tugas
4. Gunakan Named Volume untuk Data Penting
5. Jangan Simpan Secret di Image
6. Monitor Disk dan Log
7. Gunakan Healthcheck
8. Dokumentasikan Perintah Penting
9. Gunakan CI/CD untuk Build Image
10. Backup Volume Production
Volume Docker bukan pengganti backup. Untuk database, tetap gunakan mekanisme backup resmi seperti
,
, snapshot volume, atau backup managed database.
Kesimpulan
Cara terbaik menyelesaikan error Docker adalah mulai dari hal dasar: cek status container dengan
, baca log dengan
, validasi Compose dengan
, cek port, cek volume, cek network, dan pastikan Docker daemon berjalan normal. Untuk build error, baca output build secara teliti, periksa Dockerfile,
, build context, dependency, dan cache.




