Docker eliminar imágenes del tipo "none"

Quitar imágenes de construcción incompleta en docker

¿Qué es una imagen "None"?

Las imágenes none son imágenes que no se han terminado de construir por algún motivo, porque se ha cancelado su construcción de forma explícita o alguna instrucción en el Dockerfile ha causado un error y se ha abortado la operación.

Pero no solo son imágenes fallidas sino también de tipo capa (layer) o base. Estas no se podrán borrar ya que suelen tener dependencia descendente (tienen imágenes hijas). Es decir, hay imágenes construidas que usan estas capas como base. (ver imágen en la parte inferior)

Listando imágenes

#todas las imágenes docker image ls -a #todas las imágenes colgadas (dangling) o que se han quedado a media construcción. No lista las tipo capa docker images -f dangling=true

¿Como borrar las imágenes?

Comandos: #elimina todas las imágenes que no se esten usando docker image prune -a #elimina todas las imágenes colgadas (dangling) o que llevan la palabra <none> en REPOSITORY y en el TAG docker rmi $(docker images dangling=true -q) # elimina todas las imágenes que tienen <none> en el nombre docker rmi $(docker images | tail -n +2 | awk '$1 == "<none>" {print $'3'}') # otra forma, con xargs docker images --quiet --filter=dangling=true | xargs --no-run-if-empty docker rmi

Sobre xargs

#sobre xargs: xargs sirve para ejecutar un comando tomando como parametros de entrada para este el resultado de un comando anterior #algo asÍ: comando-uno | xargs otro-comando (este segundo comando espera como parámetros lo devuelto por comando-uno)

Como nota final

Si ejecutamos el siguiente comando: docker rmi $(docker images -a | tail -n +2 | awk '$1 == "<none>" {print $'3'}') intentara borrar todas las imágenes none pero dara error para aquellas de tipo capa.

Notese el flag -a.

Asi:

Error response from daemon: conflict: unable to delete xxx (cannot be forced) - image has dependent child images
Error response from daemon: conflict: unable to delete xxx (cannot be forced) - image has dependent child images

Autor: Eduardo A. F.
Publicado: 28-10-2021 21:33