tag run remove name library hub example dockers container change docker docker-machine

run - docker tag example



Docker está en volumen en uso, pero no hay ningún contenedor Docker (8)

¿Quizás el volumen se creó a través de docker-compose ? Si es así, debe ser eliminado por:

docker-compose down --volumes

¡Crédito a Niels Bech Nielsen !

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 vuelva vacío.

Cuando uso docker volume ls , docker volume ls 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?


Actualmente puede usar lo que Docker ofrece ahora para una limpieza general y más completa:

docker system prune

Para eliminar adicionalmente los contenedores detenidos y todas las imágenes no utilizadas (no solo las imágenes colgantes), agregue el indicador -a al comando:

docker system prune -a


Debe escribir este comando con la bandera -f (force):

sudo docker volume rm -f <VOLUME NAME>


El volumen puede estar en uso por uno de los contenedores detenidos. Puede eliminar dichos contenedores por comando:

docker container prune

entonces puede eliminar voluems no utilizados

docker volume prune


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> o sudo umount -f -n <path> . Debería poder obtener la ruta montada en / proc / mounts o mediante la docker volume inspect


Puede usar estas funciones para eliminar brutalmente todo lo relacionado con Docker:

removecontainers() { docker stop $(docker ps -aq) docker rm $(docker ps -aq) } armageddon() { removecontainers docker network prune -f docker rmi -f $(docker images --filter dangling=true -qa) docker volume rm $(docker volume ls --filter dangling=true -q) docker rmi -f $(docker images -qa) }

Puede agregarlos a su archivo ~/Xrc , donde X es su intérprete de shell ( ~/.bashrc si está usando bash) y volver a cargarlos ejecutando la source ~/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:

armageddon

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 (en ejecución o no) y sus volúmenes de cualquier tipo.


Soy bastante nuevo en Docker. Estaba limpiando algunos problemas iniciales de prueba y tampoco pude eliminar un volumen. docker rmi -f $(docker image ls -q) todas las instancias en ejecución, docker rmi -f $(docker image ls -q) un docker rmi -f $(docker image ls -q) , pero aún recibí la Error response from daemon: unable to remove volume: remove uuid: volume is in use .

Hice una docker system prune y limpió lo que se necesitaba para eliminar el último volumen:

[0]$ docker system prune WARNING! This will remove: - all stopped containers - all networks not used by at least one container - all dangling images - all build cache Are you sure you want to continue? [y/N] y Deleted Containers: ... about 15 containers UUID''s truncated Total reclaimed space: 2.273MB [0]$ docker volume ls DRIVER VOLUME NAME local uuid [0]$ docker volume rm uuid uuid [0]$

docker system prune

El cliente y la API del demonio deben ser al menos 1.25 para usar este comando. Use el comando docker version en el cliente para verificar las versiones de sus API de cliente y demonio.


Mientras los volúmenes estén asociados con un contenedor (en ejecución o no), no se pueden eliminar.

Tienes que correr

docker inspect <container-id>/<container-name>

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 :-

"Mounts": [ { "Type": "volume", "Name": "user1", "Source": "/var/lib/docker/volumes/user1/_data", "Destination": "/opt", "Driver": "local", "Mode": "", "RW": true, "Propagation": "" } ],

Después de descifrar los contenedores responsables, use: -

docker rm -f container-1 container-2 ...container-n en caso de ejecutar contenedores

docker rm container-1 container-2 ...container-n en caso de contenedores que no funcionan

para eliminar completamente los contenedores de la máquina host.

Luego intente eliminar el volumen con el comando: -

docker volume remove <volume-name/volume-id>