Saya mengalami masalah dengan menghapus volume Docker dengan Docker 1.9.1.
Saya telah menghapus semua kontainer saya yang berhenti sehingga docker ps -a
kembali kosong.
Saat saya gunakan docker volume ls
, saya diberikan sejumlah besar wadah Docker:
docker volume ls
DRIVER VOLUME NAME
local a94211ea91d66142886d72ec476ece477bb5d2e7e52a5d73b2f2f98f6efa6e66
local 4f673316d690ca2d41abbdc9bf980c7a3f8d67242d76562bbd44079f5f438317
local eb6ab93effc4b90a2162e6fab6eeeb65bd0e4bd8a9290e1bad503d2a47aa8a78
local 91acb0f7644aec16d23a70f63f70027899017a884dab1f33ac8c4cf0dabe5f2c
local 4932e2fbad8f7e6246af96208d45a266eae11329f1adf176955f80ca2e874f69
local 68fd38fc78a8f02364a94934e9dd3b5d10e51de5b2546e7497eb21d6a1e7b750
local 7043a9642614dd6e9ca013cdf662451d2b3df6b1dddff97211a65ccf9f4c6d47
#etc x 50
Karena tidak ada satu pun dari volume ini yang mengandung sesuatu yang penting, saya mencoba untuk membersihkan semua volume dengan docker volume rm $(docker volume ls -q)
.
Dalam prosesnya, mayoritas dihapus, tetapi saya kembali:
Error response from daemon: Conflict: volume is in use
Error response from daemon: Conflict: volume is in use
Error response from daemon: Conflict: volume is in use
Error response from daemon: Conflict: volume is in use
Error response from daemon: Conflict: volume is in use
Untuk porsi yang cukup besar. Jika saya tidak memiliki wadah di tempat pertama, bagaimana volume ini digunakan?
docker
docker-machine
Tkwon123
sumber
sumber
sudo service docker stop
dansudo service docker start
) membersihkan semua volume hantu ini untukku. Selain itu, sepertinya saya sekarang dapat menghapus volume tanpa masalah menggunakan perintah docker rm -v. Satu-satunya perbedaan penting dalam penggunaan adalah saya telah menggunakan docker-compose di Ubuntu 15.10. Saya akan melaporkan kembali jika saya bisa meniru masalah ini, tetapi jika tidak, sepertinya restart sederhana sudah cukup. Terima kasih!service docker stop && rm -rf /var/lib/docker/volumes/TheVolumIdYouWantToRemove && service docker start
Jawaban:
Anda dapat menggunakan fungsi-fungsi ini untuk menghapus secara brutal semua yang terkait dengan Docker:
Anda bisa menambahkannya ke
~/Xrc
file Anda , di mana X adalah file shell interpreter Anda (~/.bashrc
jika Anda menggunakan bash) dan memuatnya kembali melalui eksekusisource ~/Xrc
. Selain itu, Anda bisa menyalinnya ke konsol dan setelahnya (terlepas dari opsi yang Anda ambil sebelum menjalankan fungsi) jalankan saja:Ini juga berguna untuk membersihkan Docker secara umum. Perlu diingat bahwa ini juga akan menghapus gambar Anda, tidak hanya wadah Anda (baik yang sedang berjalan atau tidak) dan volume Anda apa pun.
sumber
docker volume rm
perintah itu gagal. Dari komentar, solusinya adalah me-restart daemon buruh pelabuhan untuk memperbaiki jumlah referensi.even after reboot it still says docker volume is in use..
armageddon
docker-compose down --volumes
melakukannya (seperti yang disarankan oleh @Robert K. Bell)Mungkin volumenya dibuat melalui
docker-compose
? Jika demikian, itu harus dihapus dengan:Penghargaan untuk Niels Bech Nielsen !
sumber
Saya cukup baru di Docker. Saya sedang membersihkan beberapa kekacauan pengujian awal dan tidak dapat menghapus volume juga. Saya telah menghentikan semua instance berjalan, melakukan
docker rmi -f $(docker image ls -q)
, tetapi masih menerimaError response from daemon: unable to remove volume: remove uuid: volume is in use
.Saya melakukan
docker system prune
dan membersihkan apa yang diperlukan untuk menghapus volume terakhir:docker system prune
sumber
Volume dapat digunakan oleh salah satu kontainer yang berhenti. Anda dapat menghapus wadah tersebut dengan perintah:
maka Anda dapat menghapus volume yang tidak digunakan
sumber
Selama volume dikaitkan dengan suatu wadah (berjalan atau tidak), mereka tidak dapat dihapus.
Anda harus berlari
pada masing-masing wadah berjalan / tidak berjalan di mana volume ini mungkin telah dipasang ke.
Jika volume dipasang ke salah satu wadah, Anda harus melihatnya di bagian Mounts dari output perintah inspeksi . Sesuatu seperti ini :-
Setelah mencari tahu wadah yang bertanggung jawab, gunakan: -
docker rm -f container-1 container-2 ...container-n
dalam hal menjalankan wadahdocker rm container-1 container-2 ...container-n
dalam hal wadah tidak berjalanuntuk benar-benar menghapus wadah dari mesin host.
Kemudian coba hapus volume menggunakan perintah: -
docker volume remove <volume-name/volume-id>
sumber
docker container prune
pasti cukup dalam banyak kasus.Saat ini Anda dapat menggunakan apa yang ditawarkan buruh pelabuhan sekarang untuk pembersihan umum dan lebih lengkap:
Untuk menghapus wadah yang terhenti dan semua gambar yang tidak digunakan (tidak hanya menggantung gambar), tambahkan tanda
-a
bendera ke perintah:sumber
Saya cukup yakin bahwa volume itu sebenarnya sudah terpasang di sistem Anda. Lihat di / proc / mounts dan Anda akan melihatnya di sana. Anda mungkin perlu
sudo umount <path>
atausudo umount -f -n <path>
. Anda harus bisa mendapatkan jalur yang terpasang baik di / proc / mounts atau melaluidocker volume inspect
sumber
Anda harus mengetik perintah ini dengan flag -f (force):
sudo docker volume rm -f <VOLUME NAME>
sumber