/docker-image-none

Una interesante experiencia con las imagenes <none> de docker

docker-image-none

Una interesante experiencia con las imagenes <none>

Aviso importante, estoy tratando de solucionar inconvenientes que tengo para levantar microservicios mientras estoy aprendiendo. Lo que comparto a continuación es mi experiencia, algunas búsquedas de tutoriales y nada más. Seguro esto es mejorable, tengo mucho que aprender y agradezco los aportes.

Encontré muchas imagenes de docker con la etiqueta que me estaban ocupando mucho espacio. Las ví con éste comando:

docker image ls -a

imagen

Muestra ordenadas todas las imagenes con su respectivo peso y etiquetas.

El tema es que no funciona el comando docker rmi [image id] para eliminar las imágenes que tienen etiqueta

Aparentemente las imágenes por algún motivo no se terminaron de construir y por eso quedan así.

El problema es que no sólo son imágenes fallidas, además, algunas son de tipo capa (o base) y no se pueden borrar porque suelen tener dependencias descendentes. Efectivamente el error que tenía al intentar eliminarlas era:

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

Con docker images -f dangling=true podemos ver todas las imágenes que se quedaron a mitad de camino en su construcción pero no muestra las que son de tipo capa.

En el video que sigue trato de eliminar las imágenes y lo logro sólo con aquellas que no son de tipo capa: un intento

En éste otro video logro eliminar las imágenes de tipo capa pero no se si hacer ésto es recomendable o no. Yo lo hice porque básicamente no tenía nada que perder borrándolas. solución que encontré

Para poder eliminar imagenes que tienen hijos dependientes

Este es el error que obtenía: Error response from daemon: conflict: unable to delete 7e0868d9abfa (cannot be forced) - image has dependent child images

Este es el comando que usé: docker [ rmi | images rm ] [image ID]

En image ID referencie la imagen que tenía TAG latest, en éste caso es el repo api-gateway. Cuando se elimina también se borran las imágenes de las que dependía.

En la imagen se ve el resultado de docker image ls -a y luego el resultado de docker rmi <imageId> de api-gateway.

imagen

En ésta imagen muestro la salida de docker image ls -a donde ya no se ve api-gateway ni las imágenes con las que aparentemente había una dependencia.

imagen

Links consultados:

stackoverflow - obvio

eduardoaf.com

Final feliz, logré levantar los microservicios

imagen