He tenido problemas para eliminar los volúmenes de Docker con Docker 1.9.1.
Eliminé todos mis contenedores detenidos para que docker ps -a
vuelvan vacíos.
Cuando lo uso docker volume ls
, me dan una gran cantidad de contenedores Docker:
docker volume ls
DRIVER VOLUME NAME
local a94211ea91d66142886d72ec476ece477bb5d2e7e52a5d73b2f2f98f6efa6e66
local 4f673316d690ca2d41abbdc9bf980c7a3f8d67242d76562bbd44079f5f438317
local eb6ab93effc4b90a2162e6fab6eeeb65bd0e4bd8a9290e1bad503d2a47aa8a78
local 91acb0f7644aec16d23a70f63f70027899017a884dab1f33ac8c4cf0dabe5f2c
local 4932e2fbad8f7e6246af96208d45a266eae11329f1adf176955f80ca2e874f69
local 68fd38fc78a8f02364a94934e9dd3b5d10e51de5b2546e7497eb21d6a1e7b750
local 7043a9642614dd6e9ca013cdf662451d2b3df6b1dddff97211a65ccf9f4c6d47
#etc x 50
Como ninguno de estos volúmenes contiene nada importante, trato de purgar todos los volúmenes con docker volume rm $(docker volume ls -q)
.
En el proceso, la mayoría se eliminan, pero vuelvo:
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
Para una porción considerable de ellos. Si no tengo ningún contenedor en primer lugar, ¿cómo se utilizan estos volúmenes?
docker
docker-machine
Tkwon123
fuente
fuente
sudo service docker stop
ysudo service docker start
) borró todos estos volúmenes fantasma para mí. Además, parece que ahora puedo eliminar volúmenes sin problemas usando el comando docker rm -v. Las únicas diferencias notables en el uso es que he estado usando docker-compose en Ubuntu 15.10. Informaré si alguna vez puedo replicar este problema, pero de lo contrario parece que un simple reinicio será suficiente. ¡Gracias!service docker stop && rm -rf /var/lib/docker/volumes/TheVolumIdYouWantToRemove && service docker start
Respuestas:
Puede usar estas funciones para eliminar brutalmente todo lo relacionado con Docker:
Puede agregarlos a su
~/Xrc
archivo, donde X es su archivo de intérprete de shell (~/.bashrc
si está usando bash) y volver a cargarlos mediante la ejecuciónsource ~/Xrc
. Además, puede copiarlos y pegarlos en la consola y luego (independientemente de la opción que haya elegido antes para preparar las funciones) simplemente ejecute:También es útil para la limpieza general de Docker. Tenga en cuenta que esto también eliminará sus imágenes, no solo sus contenedores (ya sean en ejecución o no) y sus volúmenes de cualquier tipo.
fuente
docker volume rm
comando estaba fallando. A partir de los comentarios, la solución parece ser reiniciar el demonio docker para corregir el recuento de referencias.even after reboot it still says docker volume is in use..
armageddon
docker-compose down --volumes
Sin embargo, usando did (como lo sugiere @Robert K. Bell)Tal vez el volumen fue creado a través de
docker-compose
? Si es así, debe ser eliminado por:¡Crédito a Niels Bech Nielsen !
fuente
Soy bastante nuevo en Docker. Estaba limpiando algunos problemas iniciales de prueba y tampoco pude eliminar un volumen. Detuve todas las instancias en ejecución, realicé una
docker rmi -f $(docker image ls -q)
, pero aún recibí laError response from daemon: unable to remove volume: remove uuid: volume is in use
.Hice un
docker system prune
y limpió lo que se necesitaba para eliminar el último volumen:docker system prune
fuente
El volumen puede estar en uso por uno de los contenedores detenidos. Puede eliminar dichos contenedores por comando:
entonces puede eliminar volúmenes no utilizados
fuente
Mientras los volúmenes estén asociados con un contenedor (en ejecución o no), no se pueden eliminar.
Tienes que correr
en cada uno de los contenedores en ejecución / no en ejecución donde este volumen podría haberse montado.
Si el volumen está montado en cualquiera de los contenedores, debería verlo en la sección Montajes de la salida del comando inspeccionar . Algo como esto :-
Después de descifrar los contenedores responsables, use: -
docker rm -f container-1 container-2 ...container-n
en caso de funcionamiento de contenedoresdocker rm container-1 container-2 ...container-n
en caso de contenedores que no funcionanpara eliminar completamente los contenedores de la máquina host.
Luego intente eliminar el volumen con el comando: -
docker volume remove <volume-name/volume-id>
fuente
docker container prune
debe ser suficiente en la mayoría de los casos.Actualmente puede usar lo que Docker ofrece ahora para una limpieza general y más completa:
Para eliminar adicionalmente los contenedores detenidos y todas las imágenes no utilizadas (no solo las imágenes colgantes), agregue el
-a
indicador al comando:fuente
Estoy bastante seguro de que esos volúmenes están realmente montados en su sistema. Mire en / proc / montes y los verá allí. Es probable que necesite
sudo umount <path>
osudo umount -f -n <path>
. Debería poder obtener la ruta montada en / proc / mounts o a través dedocker volume inspect
fuente
Debe escribir este comando con la bandera -f (force):
sudo docker volume rm -f <VOLUME NAME>
fuente