Menghapus Docker Image
Sekarang Anda memahami apa itu Docker image dan mengapa penting untuk menjaganya tetap terkendali, mari masuk ke proses penghapusannya.
Docker menyediakan beberapa perintah untuk membantu Anda mengelola image, mulai dari mendaftar apa yang Anda miliki hingga menghapus yang tidak Anda perlukan.
Memeriksa Docker image yang ada
Sebelum mulai menghapus image, Anda perlu tahu apa yang sebenarnya memakan ruang di sistem Anda. Perintah docker images adalah langkah pertama dalam proses pembersihan ini.
docker images
Perintah ini menampilkan semua Docker image Anda beserta informasi penting seperti:
- Nama repository
- Tag
- ID Image
- Tanggal pembuatan
- Ukuran

Gambar 1 - Docker image yang tersedia
Melihat kolom ukuran bisa membuka wawasan. Seperti yang terlihat pada Gambar 1, image basis data Oracle memakan lebih dari 15GB!
Jika Anda ingin mengurutkan image berdasarkan ukuran untuk mengidentifikasi yang paling memakan ruang:
docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -h

Gambar 2 - Docker image yang tersedia diurutkan berdasarkan ukuran
Ini adalah ringkasan yang lebih ringkas, karena tidak menyertakan semua properti image.
Menghapus Docker image tertentu
Setelah Anda mengidentifikasi image yang tidak diperlukan, Anda bisa menghapusnya satu per satu menggunakan perintah docker rmi (di mana rmi berarti "remove image").
Anda dapat menghapus image berdasarkan ID-nya atau kombinasi repository:tag:
# Hapus berdasarkan ID image
docker rmi 4e7024df2f20
# Hapus berdasarkan repository:tag
docker rmi nginx:latest

Gambar 3 - Dua cara menghapus Docker image secara individual
Perlu disebutkan juga bahwa Docker tidak akan mengizinkan Anda menghapus image yang sedang digunakan oleh container. Anda akan menemukan pesan error seperti:

Gambar 4 - Mencoba menghapus Docker image yang sedang digunakan
Jika Anda melihat ini, Anda harus menghentikan dan menghapus container yang bergantung sebelum menghapus image, atau gunakan opsi force (yang akan saya bahas nanti).
Menghapus banyak Docker image sekaligus
Menghapus image satu per satu bisa melelahkan, terutama saat pembersihan besar. Untungnya, Docker memungkinkan Anda menghapus banyak image dengan satu perintah.
Anda dapat memberikan daftar ID image yang dipisahkan spasi:
docker rmi postgres:latest mariadb:latest

Gambar 5 - Menghapus banyak Docker image
Atau, untuk skenario yang lebih lanjut, Anda dapat mengombinasikan docker images dengan penyaringan dan piping. Misalnya, yang ini akan menghapus semua image dengan tag latest:
docker rmi $(docker images --filter=reference="*:latest" -q)

Gambar 6 - Menghapus semua Docker image dengan tag tertentu
Tentu, kecuali image yang saat ini digunakan oleh container yang berjalan.
Berhati-hatilah dengan perintah penghapusan massal ini, karena tidak meminta konfirmasi. Anda harus selalu memeriksa ulang kriteria filter sebelum menekan Enter.
Menghapus image dangling dan yang tidak terpakai
Saat Anda membangun ulang sebuah image, Docker membuat lapisan baru untuk apa pun yang berubah dan menggunakan kembali lapisan cache untuk bagian yang tidak berubah. Lapisan unik dari versi sebelumnya menjadi "dangling"—mereka ada di disk tetapi tidak menjadi bagian dari image bernama mana pun.
Anda dapat mengidentifikasi image dangling dengan:
docker images -f "dangling=true"

Gambar 7 - Mendaftar Docker image yang dangling
Sekarang, jalankan perintah prune untuk menghapus semuanya sekaligus:
docker image prune

Gambar 8 - Pemangkasan Docker image
Perintah ini akan meminta konfirmasi sebelum melanjutkan. Jika Anda yakin ingin menghapus semuanya:
docker image prune -f
Untuk pembersihan yang lebih agresif, Anda dapat menghapus image dangling dan image yang tidak terpakai (yang tidak digunakan oleh container apa pun):
docker image prune -a

Gambar 9 - Menghapus semua image yang tidak terpakai
Perintah terakhir ini dapat membebaskan ruang yang signifikan, tetapi gunakan dengan hati-hati, karena ini akan menghapus semua image yang tidak direferensikan oleh container yang berjalan atau berhenti.
>Apa sebenarnya perintah Docker Prune? Kami mendedikasikan satu artikel penuh—penuh dengan contoh.
Sekarang Anda tahu cara menghapus Docker image, mari lihat beberapa error umum yang mungkin Anda temui dan cara menanganinya.
Menangani Error Saat Menghapus Docker Image
Seperti halnya dalam pengembangan perangkat lunak, Anda sesekali akan menemui error saat mencoba menghapus Docker image.
Kebanyakan error ini terjadi karena alasan yang baik—pengaman Docker dirancang untuk mencegah Anda secara tidak sengaja merusak sesuatu yang penting. Mari telusuri error umum ini dan cara mengatasinya.
Error: Image sedang digunakan oleh container
Error paling umum yang akan Anda temui saat menghapus Docker image terlihat seperti ini:
Error response from daemon: conflict: unable to delete 64ba095c0f0e (cannot be forced) - image is being used by running container 0284660ca006
Ini terjadi karena arsitektur Docker memiliki hubungan dependensi yang ketat antara container dan image. Container pada dasarnya adalah instance berjalan dari sebuah image dengan lapisan writeable di atasnya.
Mengapa Docker mencegah penghapusan? Sederhana—jika Anda menghapus image saat container yang berbasis pada image tersebut masih berjalan, container itu akan langsung crash. Bahkan container yang berhenti masih mempertahankan referensi ke image induknya karena mungkin akan dijalankan kembali nanti.
Untuk menghapus image seperti itu, mulailah dengan menampilkan semua container (termasuk yang berhenti) yang menggunakan image tersebut:
docker ps -a --filter ancestor=64ba095c0f0e

Gambar 10 - Semua container yang menggunakan image
Kemudian Anda dapat menghentikan semua container tersebut:
docker stop 0284660ca006

Gambar 11 - Menghentikan container
Selanjutnya, Anda dapat menghapus container yang sudah dihentikan:
docker rm 0284660ca006

Gambar 12 - Menghapus container
Dan akhirnya, gunakan perintah rmi yang sudah dikenal untuk menghapus image:
docker rmi 64ba095c0f0e

Gambar 13 - Menghapus Docker image
Atau, jika Anda lebih suka satu perintah shell, gunakan yang ini:
docker ps -a --filter ancestor=090040f97aa1 -q | xargs docker rm -f && docker rmi 090040f97aa1

Gambar 14 - Melakukan semuanya dalam satu perintah shell
Jauh lebih mudah, bukan?
Menghapus Docker image secara paksa
Jika Anda benar-benar yakin ingin menghapus image terlepas dari dependensinya, Docker menyediakan flag -f atau --force:
docker rmi -f 64ba095c0f0e

Gambar 15 - Menghapus Docker image secara paksa
Opsi force memberi tahu Docker untuk menghapus image meskipun direferensikan oleh container atau image lain.
Namun, ini tidak akan menghapus image yang direferensikan oleh container yang sedang berjalan.
Penghapusan paksa sebaiknya menjadi pilihan terakhir, seperti saat melakukan debugging Docker itu sendiri atau ketika Anda benar-benar yakin dependensi dapat diputus dengan aman. Di lingkungan produksi, ini hampir tidak pernah menjadi pilihan yang tepat.
Ingat, kontrol dependensi Docker ada karena suatu alasan. Bekerja selaras dengannya akan menghasilkan pengalaman Docker yang lebih stabil dan dapat diprediksi.
Praktik Terbaik untuk Mengelola Docker Image
Mengelola Docker image bukan tugas sekali jalan—ini adalah tanggung jawab berkelanjutan.
Membangun kebiasaan yang baik dan mengikuti praktik terbaik akan menyelamatkan Anda dari pembersihan darurat ketika ruang disk tiba-tiba menyentuh nol. Di bagian ini, saya akan memandu Anda melalui beberapa strategi untuk membantu menjaga lingkungan Docker tetap bersih.
>Mencari panduan lengkap untuk mempelajari Docker? panduan kami untuk profesional data adalah titik awal yang baik.
Pembersihan rutin
Sama seperti Anda tidak akan membiarkan piring menumpuk di wastafel selama berminggu-minggu, Anda juga tidak boleh membiarkan Docker image yang tidak terpakai menumpuk tanpa batas di sistem Anda.
Jadwal pemeliharaan rutin adalah cara termudah untuk mencegah pembengkakan image. Bergantung pada seberapa aktif Anda menggunakan Docker, ini bisa mingguan, bulanan, atau triwulanan.
Selama sesi pembersihan ini, Anda sebaiknya:
- Meninjau image dengan
docker imagesdan mengidentifikasi kandidat untuk dihapus. - Memeriksa image yang tidak Anda kenali atau yang jarang Anda gunakan baru-baru ini.
- Mencari versi duplikat dari aplikasi yang sama.
- Menghapus image yang tidak diperlukan menggunakan perintah yang dibahas sebelumnya.
Banyak tim pengembangan juga memasukkan pembersihan image ke dalam pipeline CI/CD mereka. Misalnya, Anda dapat mengonfigurasikan Jenkins atau GitHub Actions untuk melakukan pembersihan otomatis image build yang lebih lama dari usia tertentu.
Perintah ini akan hanya menampilkan image yang berusia lebih dari 30 hari:
docker images --format "{{.ID}}\t{{.CreatedAt}}" | awk '$2 < "'$(date -d '30 days ago' +'%Y-%m-%d')'"' | cut -f1
Menggunakan pruning Docker image
Docker menyediakan perintah pruning bawaan yang dapat mengotomatiskan banyak pekerjaan pembersihan manual.
Perintah docker system prune menghapus semua container yang berhenti, image dangling, dan network yang tidak terpakai sekaligus:
docker system prune
Untuk pembersihan yang lebih agresif yang juga menghapus image tidak terpakai:
docker system prune -a
Anda bahkan bisa merebut kembali ruang dari build cache:
docker builder prune
Perintah-perintah ini sempurna untuk diskripkan. Berikut contoh sederhana skrip pembersihan yang bisa Anda jalankan secara berkala:
#!/bin/bash
# Hentikan semua container
docker stop $(docker ps -q)
# Hapus semua container yang berhenti
docker container prune -f
# Hapus semua image yang tidak terpakai
docker image prune -a -f
# Tampilkan sisa penggunaan disk
docker system df

Gambar 16 - Skrip otomatis untuk pembersihan Docker
Ingat untuk menggunakan flag -f dengan hati-hati dalam skrip otomatis, karena ini melewati prompt konfirmasi.
Menjaga versi image tetap teratur
Strategi penandaan (tagging) yang baik akan membantu meminimalkan penumpukan Docker image yang tidak perlu.
Alih-alih selalu menggunakan tag latest (yang seiring waktu bisa menjadi ambigu), pertimbangkan pendekatan berikut:
- Gunakan penomoran versi semantik untuk image Anda:
myapp:1.0.0
myapp:1.0.1
myapp:1.1.0
- Sertakan informasi build dalam tag:
myapp:build-2025-04-06
myapp:commit-a7f3d9e
- Tambahkan penanda lingkungan atau tujuan:
myapp:1.0.0-dev
myapp:1.0.0-test
myapp:1.0.0-prod
Untuk tim yang lebih besar, pertimbangkan menerapkan kebijakan registri Docker image yang secara otomatis melakukan garbage-collect terhadap image lama setelah periode tertentu. Baik Docker Hub maupun registri privat seperti Harbor menawarkan fitur untuk mengelola siklus hidup image.
Dengan mengombinasikan praktik terbaik ini—pembersihan rutin, pruning otomatis, dan penandaan yang terorganisir—Anda akan menjaga lingkungan Docker jauh lebih sehat dan menghindari error "no space left on device" yang ditakuti itu.
Ringkasan Penghapusan Docker Image
Jika Anda seorang pengembang yang bekerja dengan container, pengelolaan Docker image yang tepat adalah keterampilan wajib.
Ingat bahwa kekuatan Docker berasal dari kemampuannya mengisolasi dan mengemas aplikasi secara efisien, namun manfaat ini dapat dengan cepat menjadi kerugian tanpa pemeliharaan yang tepat.
Anda telah mempelajari mengapa Docker image dapat menjadi bermasalah seiring waktu, menghabiskan ruang disk yang berharga dan menciptakan kekacauan di lingkungan pengembangan Anda. Anda telah melihat berbagai perintah untuk memeriksa dan menghapus image, mulai dari menargetkan image tertentu dengan docker rmi hingga pembersihan massal dengan perintah prune. Anda juga telah melihat error umum selama proses penghapusan dan mempelajari cara mengatasinya.
Jika Anda ingin mempelajari lebih lanjut tentang Docker dan containerization, kursus berikut seharusnya menjadi tujuan Anda berikutnya:
FAQs
Bisakah saya memulihkan Docker image setelah saya menghapusnya?
Tidak. Setelah Anda menghapus Docker image dengan docker rmi, image tersebut tidak dapat dipulihkan kecuali Anda memiliki cadangan atau dapat menariknya kembali dari registry. Selalu pastikan Anda menghapus image yang benar, terutama di lingkungan produksi. Untuk image yang Anda bangun secara lokal, Anda mungkin perlu membangunnya kembali dari Dockerfile.
Apa itu Docker image dangling, dan bagaimana cara menghapusnya?
Image dangling adalah lapisan yang tidak termasuk dalam image bertag mana pun, sering kali dibuat ketika Anda membangun ulang image berulang kali. Identifikasi dengan docker images -f "dangling=true" dan hapus semuanya sekaligus dengan docker image prune.
Bagaimana saya dapat dengan cepat mengosongkan ruang dari Docker?
Cara tercepat untuk merebut kembali ruang adalah menggunakan docker system prune -a, yang menghapus semua container yang berhenti, network yang tidak terpakai, image dangling, dan image yang tidak terpakai. Berhati-hatilah karena ini menghapus semua image yang tidak digunakan oleh container mana pun.
Seberapa sering saya harus membersihkan Docker image saya?
Frekuensinya bergantung pada seberapa aktif Anda menggunakan Docker. Untuk lingkungan pengembangan dengan build image yang sering, pembersihan mingguan direkomendasikan. Untuk sistem yang kurang aktif, pemeliharaan bulanan atau triwulanan sudah cukup. Pertimbangkan untuk menyiapkan skrip pembersihan otomatis agar konsisten.
Apa perbedaan antara menghapus dan memangkas (pruning) Docker image?
Penghapusan menargetkan image spesifik yang Anda pilih, sementara pruning membersihkan semua image yang tidak terpakai atau dangling secara otomatis berdasarkan kriteria tertentu.


Apakah Anda menggunakan Docker dan sering kehabisan ruang disk? Anda tidak sendiri.
Image Docker adalah blok pembangun container Docker, tetapi dapat cepat menumpuk dan memakan ruang disk. Ukuran image ini berkisar dari beberapa megabita hingga beberapa gigabita, jadi prosedur pembersihan rutin sangat penting untuk kinerja sistem yang optimal.
Kabar baiknya—Docker menyediakan beberapa perintah untuk membantu Anda menghapus image yang tidak diperlukan dan merebut kembali ruang disk. Memahami perintah-perintah ini dan kapan menggunakannya semoga akan menghilangkan semua peringatan kekurangan penyimpanan.
Dalam tutorial ini, saya akan memandu Anda melalui berbagai metode untuk menghapus image Docker, menunjukkan cara menangani error umum selama proses penghapusan, dan berbagi praktik terbaik untuk menjaga lingkungan Docker tetap bersih.
>Baru pertama kali menggunakan Docker? Panduan praktis tentang container ini akan membuat Anda siap dalam waktu singkat.
Apa itu Docker Image?
Docker image adalah paket perangkat lunak yang ringan, mandiri, dan dapat dieksekusi yang berisi semua yang dibutuhkan untuk menjalankan aplikasi—kode, runtime, pustaka, variabel lingkungan, dan file konfigurasi.
Anggap saja sebagai snapshot atau templat yang digunakan untuk membuat container.
>Docker tidak hanya digunakan oleh Software Engineer - Data Scientist juga menyukainya!
Docker image dibangun dalam lapisan, dengan setiap lapisan merepresentasikan serangkaian perubahan pada filesystem. Saat Anda menarik sebuah image dari Docker Hub atau membangunnya menggunakan
Dockerfile, Anda sebenarnya mengunduh atau membuat tumpukan lapisan yang bekerja bersama. Lapisan-lapisan ini di-cache, yang membuat proses build dan berbagi image lebih efisien, tetapi juga berarti memakan ruang penyimpanan di mesin Anda.Image menjadi sangat bermasalah saat Anda aktif mengembangkan aplikasi. Anda sering membangun ulang image berulang kali dengan perubahan kecil, membuat berbagai versi untuk pengujian, dan menarik dependensi yang mungkin tidak pernah dibersihkan secara otomatis.
Tahu-tahu, Anda memiliki puluhan bahkan ratusan image yang menghabiskan gigabita ruang SSD yang berharga—dan terbatas.
>Jika Anda berkecimpung di Data Science dan Machine Learning, Anda wajib tahu 12 Docker image ini.
Mengapa menghapus Docker image?
Secara sederhana, Docker image terkenal boros ruang, dan ruang disk yang bisa Anda sisihkan terbatas jumlahnya.
Menghapus Docker image yang tidak diperlukan memiliki beberapa tujuan penting:
latestAnda mengarah ke sesuatu yang tidak terduga.docker imagesdan melihat layar penuh repository, tag, dan ID, menemukan image spesifik yang Anda cari menjadi proses yang memakan waktu. Pembersihan rutin menjaga lingkungan kerja tetap mudah dikelola dan keluaran perintah Anda tetap mudah dibaca. Ini peningkatan kecil pada kualitas hidup yang berdampak besar seiring waktu.Selanjutnya, saya akan menunjukkan beberapa cara untuk menghapus Docker image.