Disk VPS Penuh karena Docker? Bersihkan Aman dengan docker system prune
VPS Anda menolak menulis file dan menampilkan No space left on device, padahal aplikasi tidak bertambah banyak. Tersangka yang sering luput adalah Docker: image lama, container berhenti yang belum dihapus, dan build cache yang membesar.
Sebelum menghapus apa pun, lihat dulu ke mana ruang itu pergi:
docker system df
Keluaran perintah ini dibagi per jenis — Images, Containers, Local Volumes, Build Cache — lengkap dengan kolom RECLAIMABLE, yaitu ruang yang bisa dibebaskan.
Prune aman: hanya yang tidak dipakai yang hilang
Perintah pembersih standar, dan yang paling aman untuk pemakaian rutin, adalah:
docker system prune
Docker meminta konfirmasi dulu, lalu menghapus container yang sudah berhenti, network yang tidak dipakai, image yang menggantung (dangling), dan build cache yang tidak dipakai. Container yang sedang berjalan tidak disentuh, dan volume tidak dihapus sama sekali. Itulah yang membuat perintah ini aman: data di dalam volume tetap utuh.
Tanpa konfirmasi — hanya untuk skrip yang sudah Anda periksa — tambahkan -f:
docker system prune -f
Hasil yang diharapkan: baris Total reclaimed space di akhir keluaran. Jalankan docker system df lagi dan bandingkan angkanya.
Garis merah: --volumes dan -a
Di sinilah orang paling sering salah langkah. Menambahkan --volumes:
docker system prune --volumes
akan menghapus volume anonim yang tidak dipakai, yaitu volume yang dibuat tanpa nama eksplisit. Volume bernama yang tidak dipakai justru tetap dipertahankan perintah ini; menghapusnya perlu docker volume prune --all, yang jauh lebih berisiko. Aturannya sederhana: jangan menambahkan --volumes sebelum memeriksa docker volume ls dan yakin volume itu memang sampah. Database, upload pengguna, dan state aplikasi hidup di volume.
Flag -a juga patut diwaspadai:
docker system prune -a
Perintah ini menghapus semua image yang tidak dipakai, bukan hanya yang dangling, sehingga image yang masih dibutuhkan harus di-pull ulang. Jalankan docker images dulu sebelum memakai -a.
Bersihkan per komponen bila perlu
Tidak selalu perlu sapu bersih. Perintah per komponen ini berguna bila Anda tahu bagian mana yang membengkak:
docker container prune docker image prune docker network prune docker builder prune
Masing-masing menghapus container berhenti, image dangling, network tak terpakai, dan build cache. Untuk membatasi usia objek yang dihapus — misalnya hanya yang dibuat lebih dari 7 hari lalu — tambahkan filter:
docker system prune --filter "until=168h"
Jadwalkan agar tidak menumpuk lagi
Jadwalkan prune standar lewat cron (atau systemd timer mingguan sebagai alternatif), misalnya tiap Minggu pukul 03:00, dengan menambahkan baris ini lewat crontab -e:
0 3 * * 0 docker system prune -f
Jangan pernah menjadwalkan --volumes atau -a secara otomatis tanpa pemantauan.
Kesalahan umum
- Ruang tidak berkurang: kemungkinan besar ruang itu ada di volume bernama atau log container. Periksa
docker volume lsdulu. - Container penting ikut terhapus: prune hanya menghapus container yang berhenti. Kelola lewat Docker Compose agar mudah dinyalakan ulang.
Tabel ringkasan
| Perintah | Yang dihapus | Risiko data |
|---|---|---|
docker system prune | Container berhenti, network tak terpakai, image dangling, build cache | Rendah, volume aman |
docker system prune -f | Sama, tanpa konfirmasi | Rendah, bila perintah sudah diperiksa |
docker system prune -a | Ditambah semua image tak terpakai | Sedang, perlu pull ulang |
docker system prune --volumes | Ditambah volume anonim tak terpakai | Tinggi bila belum diperiksa |
docker volume prune --all | Semua volume tak terpakai, termasuk bernama | Sangat tinggi, backup dulu |
Checklist akhir
docker system dfdijalankan sebelum dan sesudah prunedocker volume lsdiperiksa sebelum memakai--volumes- Tidak ada container berjalan yang terganggu
- Ruang kosong disk bertambah sesuai
Total reclaimed space
Bagian Docker apa yang paling banyak memakan disk di VPS Anda — image, build cache, atau volume? Ceritakan hasil docker system df Anda di komentar.
Baca juga: Docker Compose untuk Self-Hosting dari Nol untuk mengelola container agar mudah dinyalakan ulang, dan Docker Volume dan Backup: Jangan Sampai Data Hilang sebelum Anda menyentuh volume apa pun.


Komentar
Posting Komentar