Hapus Gambar Docker, Volume, dan Kontainer dalam Hitungan Detik
Diterbitkan: 2023-03-03Docker adalah teknologi kontainerisasi perangkat lunak yang membantu pengembang membuat dan menyebarkan aplikasi di berbagai platform mulai dari desktop hingga cloud.
Cuplikan — atau cetak biru — dari kode sumber, dependensi, dan alat yang diperlukan untuk membangun aplikasi dalam wadah Docker dikenal sebagai gambar. Aplikasi Docker yang memerlukan data persisten dapat mengandalkan penyimpanan yang disebut volume yang tidak bergantung pada sistem operasi yang mendasarinya.
Pengaturan image, volume, dan container yang efektif penting saat menggunakan Docker. Inkarnasi yang tidak terpakai dari aset ini dapat terakumulasi, menghabiskan ruang disk yang berharga, dan pada akhirnya memengaruhi kinerja sistem.
Artikel ini mengeksplorasi berbagai cara untuk mempertahankan organisasi sistem dengan menghapus gambar (baik secara individual maupun sekaligus), volume, dan wadah. Dan kami akan menggunakan antarmuka baris perintah docker
(CLI) untuk menyelesaikan tugas ini dengan cepat.
Cara Menghapus Gambar Docker
Menghapus image yang sudah usang atau tidak diperlukan dari Docker sangat penting untuk menjaga sistem tetap bersih dan teratur. Mari kita lihat bagaimana CLI menargetkan gambar tertentu untuk dihapus.
Pertama, mari kita lihat image di lingkungan Docker dengan perintah docker image ls
:
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE my_image latest 2cbc27836df4 60 seconds ago 7.05MB <none> <none> 85b412789704 2 days ago 7.05MB demo latest 26d80cd96d69 15 months ago 28.5MB
Daftar gambar di atas telah mengungkapkan gambar bernama my_image dan demo , keduanya diberi tag latest . Gambar ketiga tidak memiliki nama atau tag. Dalam hal ini, ini adalah gambar "menggantung": gambar yang saat ini tidak digunakan oleh wadah. Gambar yang menggantung ini dihasilkan dari pembangunan kembali my_image (skenario umum). Versi gambar sebelumnya masih ada di sistem file, tetapi sekarang tidak digunakan.
Daftar ini juga menampilkan 12 karakter pertama dari ID 64 karakter setiap gambar, tanggal pembuatan, dan ruang penyimpanan yang digunakan gambar.
Hapus Semua Gambar yang Tidak Digunakan
Dalam contoh daftar di atas, kami memiliki gambar yang menjuntai. Namun, gambar tanpa nama atau tag mungkin aktif. Misalnya, itu bisa digunakan untuk memulai wadah dengan mereferensikan ID-nya.
Untuk menghapus semua gambar yang benar-benar menjuntai dengan aman, Anda dapat menggunakan perintah docker image prune
:
$ docker image prune WARNING! This will remove all dangling images. Are you sure you want to continue? [y/N] y Deleted Images: deleted: sha256:85b412789704c17e9c5e7edc97b2f64c748bbdae7eaa44d3fe2cc21a87acad3d Total reclaimed space: 7.05MB
Kami akan mencantumkan gambar kami lagi untuk melihat hasil pekerjaan kami:
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE my_image latest 2cbc27836df4 70 seconds ago 7.05MB demo latest 26d80cd96d69 15 months ago 28.5MB
Setelah proses pruning, gambar tanpa nama atau tag hilang.
Hapus Gambar Tertentu dengan Nama
Anda dapat menargetkan gambar untuk dihapus dengan menyebutkan namanya:
$ docker image rm <image_name>
Catatan: Anda tidak dapat dengan mudah menghapus gambar yang masih digunakan. Anda harus menghentikan atau menghapus wadah yang sedang berjalan yang menggunakan gambar. Meskipun biasanya tidak disarankan, Anda dapat menghapus paksa gambar aktif menggunakan flag -f
:
$ docker image rm <image_name> -f
Menggunakan Singkatan rmi Untuk Menghapus Gambar
Docker CLI memiliki pendekatan singkatan untuk menghapus gambar di alias rmi
. Menggunakannya untuk menghapus gambar dengan nama terlihat seperti ini:
$ docker rmi demo Untagged: demo:latest Deleted: sha256:2cbc27836df4a7707e746e28368f1fdecfefbfb813aae06611ca6913116b80b4
Kami akan menggunakan rmi
untuk contoh penghapusan gambar berikut.
Hapus Semua Gambar Tanpa Tag
Gambar tanpa tag masih menempati ruang disk yang berharga, yang semakin memperlambat sistem Anda dari waktu ke waktu.
Untuk menghapus semua gambar tanpa tanda di Docker, gunakan perintah docker rmi
dengan filter. Anda dapat memberikan filter berdasarkan kriteria tertentu menggunakan opsi -f
(jangan bingung dengan opsi -f
yang tersedia untuk image rm
untuk memaksa suatu tindakan).
Filter dangling=true
digunakan untuk mengidentifikasi gambar tanpa tag:
$ docker rmi $(docker images -f "dangling=true" -q)
Opsi -q
pada perintah di atas menampilkan ID gambar dari semua gambar yang tidak ditandai. Semua ID ini kemudian diteruskan sebagai argumen ke docker rmi
untuk menghapusnya.
Filter ini menggunakan kata kunci "menggantung", tetapi seperti disebutkan di atas, beberapa gambar tanpa tag mungkin benar-benar aktif. Anda akan diperingatkan jika gambar yang dipilih oleh filter ini tidak benar-benar menjuntai.
Hapus Gambar Tertentu dengan ID
Anda dapat menggunakan perintah docker rmi
untuk menghapus gambar tertentu dengan mereferensikan ID-nya:
$ docker rmi <image_id>
Hapus Gambar Tertentu dengan Nama dan Tag
Anda dapat menghapus gambar tertentu beserta nama dan tagnya dengan menggunakan perintah docker rmi
.
Misalnya, jika Anda memiliki banyak gambar dengan nama yang sama tetapi tag berbeda, Anda dapat menghapus gambar tertentu dengan menggunakan format ini:
$ docker rmi <image_name>:<tag>
Metode ini berguna ketika Anda ingin menghapus versi gambar tertentu alih-alih menghapus semua gambar yang terkait dengan repositori.
Hapus Semua Gambar Dengan Tag Terbaru
Di Docker, tag "terbaru" mengacu pada versi terbaru dari image Docker tertentu. Tag terbaru sering digunakan sebagai tag default untuk image Docker. Ini secara otomatis ditetapkan ke versi gambar terbaru kecuali tag lain ditentukan secara eksplisit.
Docker memberikan perintah untuk menghapus semua gambar dengan tag "terbaru":
$ docker rmi $(docker images | grep "latest" | awk '{print $3}')
Perintah di atas dibagi menjadi 2 bagian. Pertama mendapatkan daftar ID gambar, dan kemudian meneruskan daftar ini sebagai argumen ke perintah docker rmi
.
Hapus Gambar Dari Repositori Jarak Jauh
Untuk menghapus gambar dari repositori jarak jauh, seperti Docker Hub, pertama-tama Anda harus masuk ke akun menggunakan Docker CLI.
Setelah Anda masuk, Anda hanya perlu menggunakan perintah docker rmi
untuk menghapus gambar. Perintah docker rmi
dapat menghapus gambar lokal dan jarak jauh:
docker rmi my_repo/my_image_tag
Khususnya, Anda hanya dapat menghapus gambar yang telah dimasukkan ke dalam repositori. Demikian pula, Anda tidak dapat menghapus gambar yang digunakan dengan menjalankan wadah.
Hapus Banyak Gambar Dari Repositori Jarak Jauh
Untuk menghapus banyak gambar dari repositori jarak jauh, Anda dapat menggunakan perintah docker rmi
diikuti oleh ID atau tag gambar. Misalnya:
docker rmi my_repo/image_tag_1 my_repo/image_tag_2 my_repo/image_tag_3
Ini akan menghapus tiga gambar dengan tag image_tag_1
, image_tag_2
, dan image_tag_3
dari repositori my_repo
.
Cara Menghapus Volume Docker
Volume Docker dapat menghabiskan banyak ruang disk, terutama jika berisi banyak data atau banyak cadangan. Dengan menghapus volume yang tidak diperlukan lagi, Anda mengurangi risiko pelanggaran data dan memastikan data sensitif tidak dapat diakses oleh pengguna yang tidak sah. Menghapus volume secara teratur juga dapat membuat lingkungan Docker tetap mutakhir dan mencegah masalah yang disebabkan oleh data yang kedaluwarsa.
Perintah ini secara permanen menghancurkan semua data yang disimpan dalam volume, jadi gunakan dengan hati-hati.
Hapus Semua Volume yang Tidak Digunakan
Di Docker, menghapus volume yang tidak digunakan sama pentingnya dengan menghapus gambar atau wadah.
Untuk mengosongkan penyimpanan disk, Anda dapat menggunakan perintah docker volume prune
.
Hapus Volume Tertentu berdasarkan Nama
Menghapus volume tertentu di Docker berguna untuk menghapus volume yang tidak terpakai. Inilah perintah untuk menghapus volume:
docker volume rm my_volume_name
Dengan perintah di atas, volume my_volume_name akan dihapus. Docker menghasilkan kesalahan jika Anda mencoba menghapus volume bekas. Anda dapat memeriksa volume yang tersedia menggunakan perintah docker volume ls
.
Cara Menghapus Kontainer Docker
Saat Anda bekerja lebih banyak dengan Docker, Anda dapat mengumpulkan banyak wadah yang tidak terpakai yang menempati sumber daya disk. Jika Anda tidak menghapusnya, mereka dapat terakumulasi dari waktu ke waktu dan menghabiskan sumber daya disk yang berharga, memperlambat sistem Anda dan berpotensi membahayakan Anda.
Hapus Semua Kontainer yang Dihentikan
Perintah docker container prune
dapat menghapus semua kontainer yang dihentikan di Docker. Di sini, perintah membuat daftar semua kontainer yang dihentikan yang akan dihapus dan meminta konfirmasi sebelum melanjutkan. Ini membantu mendapatkan kembali ruang disk dan memelihara lingkungan Docker yang bersih dan teratur sambil memungkinkan Anda untuk memeriksa ulang apakah Anda tidak kehilangan sesuatu yang penting:
$ docker container prune WARNING! This will remove all stopped containers. Are you sure you want to continue? [y/N] y Deleted Containers: 4df4c47c4df4 d35bcec20bce
Perhatikan bahwa hanya wadah yang dihentikan yang dapat dihapus dengan perintah ini. Jika Anda perlu menghapus wadah yang sedang berjalan, Anda harus menghentikannya terlebih dahulu atau menggunakan perintah lain.
Hapus Penampung Tertentu berdasarkan ID
Di Docker, Anda dapat menghapus wadah tertentu dengan ID menggunakan docker rm command
bersama dengan ID wadah. Pertama, dapatkan semua ID kontainer menggunakan docker ps command
:
$ docker ps -a -q 1ce3cdeb4035 06b79541e25c fa98f1804e3e $ docker rm 1ce3cdeb4035
Perintah di atas hanya berfungsi jika wadah dalam keadaan berhenti. Jika wadah sedang berjalan, maka Anda harus menghapusnya secara paksa menggunakan flag -f:
$ docker rm -f 1ce3cdeb4035
Hapus Wadah Tertentu berdasarkan Nama
Docker menyediakan perintah docker rm
multiguna untuk menghapus kedua kontainer berdasarkan nama dan ID.
Misalnya, jika Anda memiliki wadah bernama web_server , Anda dapat menghapusnya menggunakan perintah berikut:
$ docker rm web_server
Pertama, penting untuk menghentikan wadah. Docker menyediakan perintah docker stop
untuk menghentikan container tertentu.
Hapus Semua Kontainer yang Berjalan
Untuk menghapus semua wadah yang sedang berjalan, Anda dapat menggunakan perintah docker rm
:
$ docker rm $(docker ps -q)
Menggunakan docker ps -q
mencantumkan ID wadah yang sedang berjalan. Setelah itu, ID diteruskan ke perintah docker rm
, yang menghapus semua kontainer.
Perhatikan bahwa perintah ini hanya akan menghapus wadah yang sedang berjalan. Jika Anda ingin menghapus semua kontainer, termasuk yang dihentikan, Anda dapat menggunakan perintah berikut:
$ docker rm $(docker ps -a -q)
Ringkasan
Artikel ini menjelaskan cara menghapus image, volume, dan container Docker. Anda mempelajari berbagai metode untuk mempertahankan sistem yang bersih dan teratur. Itu mencakup perintah untuk menghapus semua gambar yang tidak digunakan, tidak diberi tanda, atau gambar tertentu dengan ID atau nama. Anda juga mempelajari perintah untuk menghapus semua container yang dihentikan atau container tertentu berdasarkan ID atau nama.
Menghapus image, volume, dan kontainer Docker adalah proses langsung yang dapat membantu Anda mengelola komponen yang tidak terpakai, memulihkan ruang disk yang berharga, dan seringkali meningkatkan kinerja sistem.
Kesederhanaan inilah yang menarik pengembang ke Docker, dan tidak ada cara yang lebih sederhana untuk menerapkan aplikasi yang dikembangkan di Docker selain dengan platform Hosting Aplikasi Kinsta. Anda dapat mencobanya secara gratis sekarang.