Tutorial

Cara Menghapus Citra, Kontainer, dan Volume Docker

Published on November 23, 2020
Bahasa Indonesia
Cara Menghapus Citra, Kontainer, dan Volume Docker

Ringkasan Docker

Pengantar

Docker memberi kemudahan untuk membungkus aplikasi dan layanan di dalam kontainer sehingga Anda dapat menjalankannya di mana pun. Namun, seiring Anda bekerja dengan Docker, mudah juga untuk mengakumulasi jumlah citra, kontainer, dan volume data yang berlebihan dan tidak terpakai, yang mengacaukan keluaran dan mengonsumsi ruang diska.

Docker menyediakan semua alat yang Anda perlukan untuk membersihkan sistem dari baris perintah. Panduan bergaya ringkasan ini memberikan referensi cepat tentang perintah-perintah yang berguna untuk membebaskan ruang diska dan menjaga sistem Anda tetap teratur dengan menghapus citra, kontainer, dan volume Docker.

Cara Menggunakan Panduan Ini:

  • Panduan ini menggunakan format ringkasan dengan kutipan baris perintah mandiri
  • Silakan ke bagian apa pun yang relevan dengan tugas yang Anda sedang coba selesaikan.

Sintaks pengganti perintah, command $(command), yang digunakan di dalam perintah tersedia dalam banyak shell populer seperti bash, zsh, dan Windows Powershell.

Membersihkan Semua Citra, Kontainer, Volume, dan Jaringan yang Tak Digunakan atau Menggantung

Docker menyediakan satu perintah tunggal yang akan membersihkan sumber daya apa pun — citra, kontainer, volume, dan jaringan — yang menggantung (tidak terkait dengan suatu kontainer):

  1. docker system prune

Untuk melakukan penghapusan tambahan pada kontainer yang diberhentikan dan semua citra yang tidak digunakan (bukan hanya citra yang menggantung), tambahkan bendera -a pada perintah:

  1. docker system prune -a

Menghapus Citra Docker

Menghapus satu atau banyak citra tertentu

Gunakan perintah docker images dengan bendera -a untuk menemukan ID citra yang Anda ingin hapus. Ini akan menunjukkan kepada Anda setiap citra, termasuk lapisan citra perantara. Ketika Anda telah menemukan citra yang ingin dihapus, Anda dapat memberikan ID citra atau tanda ke docker rmi:

Membuat Daftar:

  1. docker images -a

Menghapus:

  1. docker rmi Image Image

Menghapus citra yang menggantung

Citra Docker terdiri dari beberapa lapisan. Citra menggantung adalah lapisan yang tidak memiliki hubungan dengan citra apa pun yang ditandai. Citra menggantung ini tidak lagi berguna dan mengonsumsi ruang diska. Citra ini dapat ditemukan dengan menambahkan bendera filter, -f dengan nilai dangling=true ke perintah docker images. Ketika Anda yakin ingin menghapusnya, Anda dapat menggunakan perintah docker image prune:

Catatan: Jika Anda membangun citra tanpa menandainya, citra akan muncul di daftar citra yang tergantung karena citra tersebut tidak memiliki hubungan dengan citra yang ditandai. Anda dapat menghindari situasi ini dengan memberikan tanda saat membangun, dan Anda dapat secara retroaktif menandai citra dengan perintah docker tag.

Membuat Daftar:

  1. docker images -f dangling=true

Menghapus:

  1. docker image prune

Menghapus citra menurut pola

Anda dapat menemukan semua citra yang cocok dengan suatu pola menggunakan kombinasi docker images dan grep. Setelah puas, Anda dapat menghapusnya menggunakan awk untuk memberikan ID ke docker rmi. Perhatikan bahwa utilitas ini tidak disediakan oleh Docker dan tidak selalu tersedia di seluruh sistem:

Membuat Daftar:

  1. docker images -a | grep "pattern"

Menghapus:

  1. docker images -a | grep "pattern" | awk '{print $3}' | xargs docker rmi

Menghapus semua citra

Semua citra Docker di suatu sistem dapat dibuatkan daftar dengan menambahkan -a ke perintah docker images. Setelah yakin ingin menghapus semuanya, Anda dapat menambah bendera -q untuk memberikan ID Citra ke docker rmi:

Membuat Daftar:

  1. docker images -a

Menghapus:

  1. docker rmi $(docker images -a -q)

Menghapus Kontainer

Menghapus satu atau beberapa kontainer tertentu

Gunakan perintah docker ps dengan bendera -a untuk menemukan nama atau ID kontainer yang Anda ingin hapus:

Membuat Daftar:

  1. docker ps -a

Menghapus:

  1. docker rm ID_or_Name ID_or_Name

Menghapus kontainer saat keluar

Saat menciptakan suatu kontainer, jika Anda mengira bahwa Anda tidak akan menyimpannya setelah selesai, Anda dapat menjalankan docker run --rm untuk menghapusnya secara otomatis saat keluar.

Jalankan dan Hapus:

  1. docker run --rm image_name

Menghapus semua kontainer yang telah ditinggalkan

Anda dapat menemukan kontainer dengan menggunakan docker ps -a dan memfilter itu berdasarkan statusnya: tercipta (created), memulai ulang (restarting), berjalan (running), dihentikan sementara (paused), atau ditinggalkan (exited). Untuk meninjau daftar kontainer yang ditinggalkan, gunakan bendera -f untuk memfilter berdasarkan status. Ketika Anda yakin bahwa Anda ingin menghapus kontainer tersebut, gunakan -q untuk memberikan ID ke perintah docker rm.

Membuat Daftar:

  1. docker ps -a -f status=exited

Menghapus:

  1. docker rm $(docker ps -a -f status=exited -q)

Menghapus kontainer menggunakan lebih dari satu filter

Filter Docker dapat dikombinasikan melalui pengulangan bendera filter dengan nilai tambahan. Ini menghasilkan daftar kontainer yang memenuhi salah satu kondisi. Misalnya, jika Anda ingin menghapus semua kontainer yang ditandai sebagai Created (kondisi yang dihasilkan saat Anda menjalankan kontainer dengan perintah yang tidak valid) atau Exited, Anda dapat menggunakan dua filter:

Membuat Daftar:

  1. docker ps -a -f status=exited -f status=created

Menghapus:

  1. docker rm $(docker ps -a -f status=exited -f status=created -q)

Menghapus kontainer menurut pola

Anda dapat menemukan semua citra yang cocok dengan suatu pola menggunakan kombinasi docker ps dan grep. Ketika Anda puas dengan daftar yang ingin dihapus, Anda dapat menggunakan awk dan xargs untuk memberikan ID ke docker rm. Perhatikan bahwa utilitas ini tidak disediakan oleh Docker dan tidak selalu tersedia di seluruh sistem:

Membuat Daftar:

  1. docker ps -a | grep "pattern

Menghapus:

  1. docker ps -a | grep "pattern" | awk '{print $1}' | xargs docker rm

Menghentikan dan menghapus semua kontainer

Anda dapat meninjau kontainer di sistem Anda dengan docker ps. Menambahkan bendera -a akan menunjukkan semua kontainer. Bila Anda yakin ingin menghapusnya, Anda dapat menambah bendera -q untuk memberikan ID ke perintah docker stop dan docker rm:

Membuat Daftar:

  1. docker ps -a

Menghapus:

  1. docker stop $(docker ps -a -q)
  2. docker rm $(docker ps -a -q)

Menghapus Volume

Menghapus satu atau beberapa volume tertentu - Docker 1.9 dan yang lebih baru

Gunakan perintah docker volume ls untuk menemukan nama volume atau nama yang Anda ingin hapus. Kemudian, Anda dapat menghapus satu atau beberapa volume dengan perintah docker volume rm:

Membuat Daftar:

  1. docker volume ls

Menghapus:

  1. docker volume rm volume_name volume_name

Menghapus volume yang menggantung - Docker 1.9 dan yang lebih baru

Karena tujuan volume itu adalah untuk hadir secara independen dari kontainer, saat kontainer dihapus, volume tidak secara otomatis dihapus secara bersamaan. Ketika volume ada dan tidak lagi terhubung ke kontainer apa pun, hal ini disebut volume yang menggantung. Untuk menemukan volume tersebut guna mengonfirmasi Anda ingin menghapusnya, Anda dapat menggunakan perintah docker volume ls dengan suatu filter untuk membatasi hasil hanya untuk volume menggantung. Ketika Anda puas dengan daftarnya, Anda dapat menghapus semuanya dengan docker volume prune:

Membuat Daftar:

  1. docker volume ls -f dangling=true

Menghapus:

  1. docker volume prune

Menghapus kontainer dan volumenya

Jika Anda menciptakan volume yang tidak bernama, volume ini dapat dihapus secara bersamaan dengan kontainer menggunakan bendera -v. Perhatikan bahwa ini hanya berfungsi untuk volume yang tidak bernama. Ketika kontainer berhasil dihapus, ID volume ditampilkan. Perhatikan bahwa tidak ada referensi yang dibuat terhadap penghapusan volume. Jika tidak bernama, volume akan dihapus dari sistem tanpa pemberitahuan. Jika volumenya bernama, volume tersebut tetap ada tanpa pemberitahuan.

Menghapus:

  1. docker rm -v container_name

Kesimpulan

Panduan ini mencakup beberapa perintah umum yang digunakan untuk menghapus citra, kontainer, dan volume dengan Docker. Ada banyak kombinasi dan bendera lainnya yang dapat digunakan dengan satu sama lain. Untuk panduan yang komprehensif tentang apa saja yang tersedia, lihat dokumentasi Docker untuk docker system prune, docker rmi, docker rm, dan docker volume rm. Jika ada tugas pembersihan umum yang Anda ingin lihat di dalam panduan, silakan bertanya atau menuliskan saran di dalam komentar.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about our products

About the authors

Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Featured on Community

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel