M

April 20, 2026

Mengatasi Docker CPU 90%.

Cara menurunkan penggunaan CPU dan disk Docker Desktop yang tembus ~90% dengan membersihkan resource yang tidak terpakai lewat docker system prune.

Catatan singkat untuk mengatasi Docker Desktop yang membuat penggunaan CPU (dan kadang disk) melonjak hingga ~90%. Berguna saat laptop terasa panas, kipas berisik, atau baterai cepat habis padahal kamu merasa tidak sedang menjalankan container yang berat.

Gejala

  • Proses com.docker.backend / com.docker.hyperkit (macOS) atau Vmmem / vmmemWSL (Windows/WSL2) memakan CPU sangat tinggi, sering mendekati 90–100%.
  • Docker Desktop terasa lambat, docker command butuh waktu lama untuk merespons.
  • Ruang disk terus menyusut karena tumpukan image, container, volume, dan build cache.

Kenapa Ini Terjadi

Docker menjalankan container di dalam sebuah virtual machine (LinuxKit di macOS, atau distro WSL2 di Windows). VM ini punya proses helper yang menangani CPU, memori, dan I/O.

Penyebab paling umum lonjakan CPU/disk:

  • Sampah menumpuk — image yang sudah tidak dipakai (dangling), container yang berhenti, volume yatim, dan build cache yang membengkak membuat daemon bekerja lebih keras dan disk penuh.
  • File watching / bind mount — sinkronisasi file antara host dan VM (mis. project besar dengan node_modules) memicu I/O terus-menerus.
  • Alokasi resource terlalu besar — Docker Desktop diberi jatah CPU/RAM yang berlebihan sehingga VM ikut berat.

Solusi Cepat

Bersihkan semua resource Docker yang tidak sedang digunakan. Ini adalah langkah pertama yang paling efektif:

docker system prune -a

Perintah ini akan menghapus:

  • Semua container yang berhenti.
  • Semua network yang tidak dipakai container mana pun.
  • Semua image yang tidak sedang dipakai (bukan hanya yang dangling, karena ada flag -a).
  • Semua build cache.

Untuk sekaligus membersihkan volume yang tidak terpakai (hati-hati, ini bisa menghapus data persisten seperti database lokal):

docker system prune -a --volumes

Cek dulu berapa banyak ruang yang bisa direbut sebelum menghapus:

docker system df

Langkah Tambahan

Kalau CPU masih tinggi setelah prune, coba langkah berikut:

  • Batasi resource Docker Desktop. Buka Settings > Resources, lalu turunkan jumlah CPU dan Memory ke angka yang wajar (mis. 2–4 CPU, 4 GB RAM) agar VM tidak rakus.

  • Restart Docker Desktop setelah prune, atau restart daemon di Linux:

    sudo systemctl restart docker
    
  • Kurangi file watching. Untuk project dengan bind mount besar, kecualikan folder berat seperti node_modules atau gunakan named volume agar I/O berkurang.

  • Aktifkan VirtioFS (macOS) di Settings > General untuk sinkronisasi file yang lebih efisien.

Catatan

  • docker system prune -a menghapus semua image yang tidak sedang dipakai container aktif, jadi image tersebut perlu diunduh atau di-build ulang saat dibutuhkan lagi.
  • Selalu berhati-hati dengan flag --volumes karena data di dalam volume (misalnya database) akan ikut terhapus dan tidak bisa dikembalikan.

Hey! I’m Fanny, the software engineer tending to this digital garden. You can read more about me, or subscribe by email.

Comments