tutorial hub ejemplos dockers desde container cero docker

hub - dockers container download



Docker: no se puede quitar el contenedor muerto (18)

  1. Para eliminar todos los contenedores muertos docker rm -f $(docker ps --all -q -f status=dead)

  2. Para eliminar todos los contenedores salidos docker rm -f $(docker ps --all -q -f status=exited)

Como tengo -f es necesario

No puedo eliminar el contenedor muerto, aparece nuevamente después de reiniciar el servicio Docker.

docker ps -a CONTAINER ID STATUS 11667ef16239 Dead

Entonces

docker rm -f 11667ef16239

Luego, cuando ejecuté el docker ps -a, no se muestran contenedores de docker.

docker ps -a CONTAINER ID STATUS

Sin embargo, cuando reinicio el servicio docker:

service docker restart

Y ejecute el docker ps -a nuevamente:

docker ps -a CONTAINER ID STATUS 11667ef16239 Dead


Al ejecutar en Centos7 y Docker 1.8.2, no pude usar la solución de Zgr3doo para desmontar con devicemapper (creo que la respuesta que obtuve fue que el volumen no estaba montado / encontrado).

Creo que también sucedió algo similar con la respuesta de sk8terboi87:: creo que el mensaje fue que los volúmenes no se podían desmontar, y enumeraba los volúmenes específicos que intentó desmontar para eliminar los contenedores muertos.

Lo que sí funcionó para mí fue detener Docker primero y luego eliminar los directorios manualmente. Pude determinar cuáles eran por la salida de error del comando anterior para eliminar todos los contenedores muertos.

Disculpas por las vagas descripciones anteriores. Encontré esta pregunta SO días después de manejar los contenedores muertos. .. Sin embargo, noté un patrón similar hoy:

$ sudo docker rm -v compassionate_ardinghelli compassionate_ardinghelli

Noté que, al usar este enfoque, Docker recreó las imágenes con diferentes nombres:

$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4f13b53be9dd 5b0bbf1173ea "/opt/app/netjet..." 5 months ago Dead appname_chess $ docker rm $(docker ps --all -q -f status=dead) Error response from daemon: driver "devicemapper" failed to remove root filesystem for 4f13b53be9ddef3e9ba281546aef1c544805282971f324291a1dc91b50eeb440: failed to remove device 487b4b73c58d19ef79201cf6d5fcd6b7316e612e99c14505a6bf24399cad9795-init: devicemapper: Error running DeleteDevice dm_task_run failed su cd /var/lib/docker/containers [root@localhost containers]# ls -l total 0 drwx------. 1 root root 312 Nov 17 08:58 4f13b53be9ddef3e9ba281546aef1c544805282971f324291a1dc91b50eeb440 [root@localhost containers]# rm -rf 4f13b53be9ddef3e9ba281546aef1c544805282971f324291a1dc91b50eeb440 systemctl restart docker

Esto puede deberse a que el contenedor se emitió con restart = siempre, sin embargo, la ID del contenedor coincide con la ID del contenedor que utilizó anteriormente el volumen que forcé la eliminación. No hubo dificultades para eliminar este nuevo contenedor:

$ sudo docker rm -v compassionate_ardinghelli compassionate_ardinghelli


Aquí hay muchas respuestas, pero ninguna de ellas involucró la solución (rápida) que funcionó para mí.

Estoy usando Docker versión 1.12.3, compilación 6b644ec.

Simplemente ejecuté docker rmi <image-name> para la imagen de donde vino el contenedor muerto. Un docker ps -a luego mostró que el contenedor muerto faltaba por completo.

Luego, por supuesto, simplemente volví a sacar la imagen y volví a ejecutar el contenedor.

No tengo idea de cómo se encontró en este estado, pero así es ...


En realidad, las cosas cambiaron ligeramente en estos días para deshacerse de esos contenedores muertos, puede intentar desmontar esos sistemas de archivos bloqueados para liberarlos

Entonces, si recibes un mensaje como este

Error response from daemon: Cannot destroy container elated_wozniak: Driver devicemapper failed to remove root filesystem 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3: Device is Busy

solo ejecuta esto

umount /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3

y normalmente puedes quitar el contenedor después de eso


He probado las sugerencias anteriores pero no funcionó.

Entonces

  1. Intento: docker system prune -a , no funcionó la primera vez
  2. Reinicio el sistema
  3. Vuelvo a intentar la docker system prune -a . Esta vez funciona Enviará un mensaje de advertencia y al final preguntará "¿Está seguro de que desea continuar? Y / n?. Respuesta: y. Tomará un tiempo y al final los contenedores muertos desaparecerán.
  4. Verificar con docker ps -a

IMPORTANTE : esta es la opción nuclear, ya que destruye todos los contenedores + imágenes


Intenté todo lo anterior (antes de reiniciar / reiniciar la ventana acoplable).

Así que aquí está el error om docker rm:

$ docker rm 08d51aad0e74 Error response from daemon: driver "devicemapper" failed to remove root filesystem for 08d51aad0e74060f54bba36268386fe991eff74570e7ee29b7c4d74047d809aa: remove /var/lib/docker/devicemapper/mnt/670cdbd30a3627ae4801044d32a423284b540c5057002dd010186c69b6cc7eea: device or resource busy

Luego hice lo siguiente:

$ grep docker /proc/*/mountinfo | grep 958722d105f8586978361409c9d70aff17c0af3a1970cb3c2fb7908fe5a310ac /proc/20416/mountinfo:629 574 253:15 / /var/lib/docker/devicemapper/mnt/958722d105f8586978361409c9d70aff17c0af3a1970cb3c2fb7908fe5a310ac rw,relatime shared:288 - xfs /dev/mapper/docker-253:5-786536-958722d105f8586978361409c9d70aff17c0af3a1970cb3c2fb7908fe5a310ac rw,nouuid,attr2,inode64,logbsize=64k,sunit=128,swidth=128,noquota

Este debe ser el PID del proceso ofensivo que lo mantiene ocupado - 20416 (el elemento después de / proc /

Entonces hice un ps -p y para mi sorpresa encontré:

[devops@dp01app5030 SeGrid]$ ps -p 20416 PID TTY TIME CMD 20416 ? 00:00:19 ntpd

Un verdadero momento WTF. Así que emparejé el problema resuelto con Google y encontré esto: luego encontré esto https://github.com/docker/for-linux/issues/124

Resulta que tuve que reiniciar el demonio ntp y eso solucionó el problema.


Intenta ejecutar los siguientes comandos. Siempre funciona para mi.

# docker volume rm $(docker volume ls -qf dangling=true) # docker rm $(docker ps -q -f ''status=exited'')

Después de la ejecución de los comandos anteriores, reinicie Docker,

# service docker restart


Intenta matarlo y luego eliminar> :) es decir
docker kill $(docker ps -q)


Intenta, funcionó para mí:

docker rm -f <container_name> eg. docker rm -f 11667ef16239


Intente esto, funcionó para mí en centos 1) docker container ls -a le da una lista de estado de verificación de contenedores del que desea deshacerse 2) el contenedor docker rm -f 97af2da41b2b no es un gran indicador de fuerza del ventilador, pero hace el trabajo para verificar que funcionó, simplemente active el comando nuevamente o enumere. 3) continuar hasta que despejemos todos los contenedores muertos


Lo más probable es que se haya producido un error cuando el demonio intentó limpiar el contenedor, y ahora está atrapado en este estado "zombie".

Me temo que su única opción aquí es limpiarlo manualmente:

$ sudo rm -rf /var/lib/docker/<storage_driver>/11667ef16239.../

Donde <storage_driver> es el nombre de su controlador ( aufs , overlay , btrfs o devicemapper ).


Prueba esto, funcionó para mí:

$ sudo docker stop fervent_fermi; sudo docker rm fervent_fermi fervent_fermi Error response from daemon: Cannot destroy container fervent_fermi: Driver devicemapper failed to remove root filesystem a11bae452da3dd776354aae311da5be5ff70ac9ebf33d33b66a24c62c3ec7f35: Device is Busy Error: failed to remove containers: [fervent_fermi] $ sudo systemctl docker stop $ sudo rm -rf /var/lib/docker/devicemapper/mnt/a11bae452da3dd776354aae311da5be5ff70ac9ebf33d33b66a24c62c3ec7f35 $


Quitar el contenedor por la fuerza funcionó para mí.

docker rm -f <id_of_the_dead_container>

Notas :

Tenga en cuenta que este comando puede generar este error Error response from daemon: Driver devicemapper failed to remove root filesystem <id_of_the_dead_container>: Device is Busy

El montaje del mapeador de dispositivos de contenedor muerto de su debe eliminarse a pesar de este mensaje. Es decir, ya no accederá a esta ruta:

/var/lib/docker/devicemapper/mnt/<id_of_the_dead_container>


Recibí el mismo problema y ambas respuestas no ayudaron.

Lo que me ayudó es crear los directorios que faltan y eliminarlos:

mkdir /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3 mkdir /var/lib/docker/devicemapper/mnt/656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3-init docker rm 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3


También puede eliminar contenedores dead con este comando

docker rm $(docker ps --all -q -f status=dead)

Pero, realmente no estoy seguro de por qué y cómo se crean los contenedores dead . Este error parece estar relacionado https://github.com/typesafehub/mesos-spark-integration-tests/issues/34 cada vez que obtengo contenedores dead

[Actualización] Con la actualización Docker 1.13, podemos eliminar fácilmente ambos contenedores no deseados, colgando imágenes

$ docker system df #will show used space, similar to the unix tool df $ docker system prune # will remove all unused data.


Tuve el siguiente error al eliminar un contenedor muerto (docker 17.06.1-ce en CentOS 7):

Error response from daemon: driver "overlay" failed to remove root filesystem for <some-id>: remove /var/lib/docker/overlay/<some-id>/merged: device or resource busy

Así es como lo arreglé:

1. Compruebe qué otros procesos también están utilizando los recursos de Docker

$ grep docker /proc/*/mountinfo

que genera algo como esto, donde el número después de /proc/ es el pid :

/proc/10001/mountinfo:179... /proc/10002/mountinfo:149... /proc/12345/mountinfo:159 149 0:36 / /var/lib/docker/overlay/...

2. Verifique el nombre del proceso del pid anterior

$ ps -p 10001 -o comm= dockerd $ ps -p 10002 -o comm= docker-containe $ ps -p 12345 -o comm= nginx <<<-- This is suspicious!!!

Entonces, nginx con pid 12345 también parece estar usando /var/lib/docker/overlay/... , por lo que no podemos eliminar el contenedor relacionado y obtener el error de device or resource busy . (Consulte here para ver una discusión sobre cómo nginx comparte el mismo espacio de nombres de montaje con los contenedores acoplables, por lo que evita su eliminación).

3. Detenga nginx y luego puedo eliminar el contenedor con éxito.

$ sudo service nginx stop $ docker rm <container-id>


para ventanas:

a11bae452da3 trend_av_docker "bash" 2 weeks ago Dead compassionate_ardinghelli

Luego reinicie el escritorio de Docker


grep 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3 /proc/*/mountinfo

luego encuentra el pid de 656cfd09aee399c8ae8c8d3e735fe48d70be6672773616e15579c8de18e2a3b3and y mátalo