Hapus Gambar Docker, Volume, dan Kontainer dalam Hitungan Detik

Diterbitkan: 2023-03-03

Docker 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.

Jangan biarkan kekacauan Docker mengambil alih sistem Anda! Pelajari cara menghapus gambar, volume, dan wadah secara efisien dengan perintah praktis ini. Klik untuk menge-Tweet

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)
Jika Anda ingin mengoptimalkan sistem Docker Anda, menghapus image, volume, dan container yang tidak perlu adalah tempat yang bagus untuk memulai! Klik untuk menge-Tweet

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.