Dokumentasi Docker resmi menyebutkan bahwa saya perlu menjalankan docker rm -v containername
untuk secara khusus menghapus volume data. Tapi apa yang Anda lakukan jika Anda sudah menghapus semua kontainer referensi volume data tertentu?
Sebelum versi 1.9, Docker tidak menyediakan cara untuk menghapus volume yang menggantung.
Jika volume seperti itu mengambil terlalu banyak ruang disk dan Anda ingin mengambil masalah ke tangan Anda sendiri, Anda dapat menghapus volume secara manual dengan terlebih dahulu mengidentifikasi yang sedang digunakan. Anda dapat menjalankan docker inspect -f '{{ .Volumes }}' containername
untuk menemukan lokasi dalam sistem file volume yang digunakan, dan kemudian menghapus semuanya kecuali itu. Jika Anda memiliki banyak kontainer, Anda dapat menjalankan for x in $(docker ps -qa | sed '1d'); do docker inspect -f '{{ .Volumes }}' ${x}; done
untuk mengulang-ulang kontainer dan daftar volume.
Lebih baik lagi, Anda dapat menggunakan skrip Python di sini , prasyarat adalah menginstal klien API python untuk Dockerpip install docker-py
| sed '1d'
? Itu membuang hasil pertama. yang-q
pilihan dalamdocker ps -qa
sudah menghilangkan baris header dalam output. Saya menggunakan buruh pelabuhan versi 1,13 dan di sana saya harus menggunakan{{ .Mounts }}
bukan{{ .Volumes }}
.Di Docker 1.9, ada kemampuan untuk mengelola volume yang lebih baik dengan
docker volume
(lihat PR ini ):Ini dapat dihapus melalui perintah ini:
sumber
dangling=false
yang persis sama untuk saya, hanya dalam urutan berbeda. Docker 1.9.1. Kedengarannya mencurigakan; apakah filter menggantung benar-benar berfungsi? Ah, ini bug. github.com/docker/docker/issues/16095 (ditandai sebagai ditutup, tetapi masih menjadi masalah bagi saya ...)Membersihkan perintah: pada docker 1,13 memperkenalkan perintah pembersihan. Untuk menghapus semua wadah, gambar, jaringan, dan volume yang tidak digunakan:
docker system prune
atau secara individual:
docker container prune
docker image prune
docker network prune
docker volume prune
sumber
Gunakan perintah
untuk menghapus volume yang menggantung dari buruh pelabuhan 1.9 dan di atas.
sumber
Saya memiliki buruh pelabuhan 1.6.
Versi python tidak bekerja untuk saya itu mengeluh ketidakcocokan versi buruh pelabuhan. Sungguh menakjubkan, bahwa pada saat-saat seperti ini, tidak ada yang mengalahkan cara lama yang baik dalam melakukan sesuatu.
Cukup tambahkan deklarasi fungsi 'volpurge ()' ke dalam file .bashrc root Anda. Fungsi ini harus dijalankan sebagai root.
sumber