Docker eliminar imágenes de ETIQUETAS


root@server:~# docker images -a        
REPOSITORY              TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
<none>                  <none>              5e2dfc857e73        5 days ago          261.6 MB
<none>                  <none>              d053e988f23d        5 days ago          261.6 MB
<none>                  <none>              1d5d4a2d89eb        5 days ago          261.6 MB
<none>                  <none>              ea0d189fdb19        5 days ago          100.5 MB
<none>                  <none>              26c6175962b3        5 days ago          100.5 MB
<none>                  <none>              73d5cec4a0b3        5 days ago          100.5 MB
<none>                  <none>              e19590e1bac1        5 days ago          100.5 MB

He intentado lo siguiente:

docker rmi $(docker images | grep "^<none>" | awk "{print $3}")

Y lo siguiente:

docker rmi $(docker images -f "dangling=true" -q)

Obtiene el siguiente error:

docker: "rmi" requires a minimum of 1 argument.
See 'docker rmi --help'.

Usage:  docker rmi [OPTIONS] IMAGE [IMAGE...]

Remove one or more images
 30
Author: Karl Morrison, 2015-11-25

10 answers

Puedes intentar listar solo imágenes sin etiquetar (aquellas sin etiquetas, o con etiqueta sin etiqueta):

docker images -q -a | xargs docker inspect --format='{{.Id}}{{range $rt := .RepoTags}} {{$rt}} {{end}}'|grep -v ':'

Sin embargo, algunas de esas imágenes sin etiquetar podrían ser necesarias para otros.

Prefiero eliminar solo imágenes colgantes :

docker rmi $(docker images --filter "dangling=true" -q --no-trunc)

Como mencioné para docker 1.13 + en Sept. 2016 en " Cómo eliminar imágenes Docker antiguas y no utilizadas", también puede hacer image prune comando :

docker image prune

Dicho esto, Janaka Bandara menciona en los comentarios:

Esto hizo no eliminar <none>-imágenes etiquetadas para mí (por ejemplo, foo/bar:<none>); tuve que usar docker images --digests y docker rmi foo/bar@<digest>

Janaka referencias " Cómo Eliminar una Imagen Firmada con una etiqueta " de Paul V. Novarese:

# docker images
REPOSITORY               TAG                 IMAGE ID            CREATED             SIZE
pvnovarese/mprime        latest              459769dbc7a1        5 days ago          4.461 MB
pvnovarese/mprime        <none>              459769dbc7a1        5 days ago          4.461 MB

Pasos de diagnóstico

Usted puede ver la diferencia en estas dos entradas si utiliza el --digests=true opción (la etiqueta la entrada tiene el resumen de la firma de la confianza de contenido de Docker):

# docker images --digests=true
REPOSITORY               TAG                 DIGEST                                                                    IMAGE ID            CREATED             SIZE
pvnovarese/mprime        latest              <none>                                                                    459769dbc7a1        5 days ago          4.461 MB
pvnovarese/mprime        <none>              sha256:0b315a681a6b9f14f93ab34f3c744fd547bda30a03b55263d93861671fa33b00   459769dbc7a1        5 days ago     

Note que Pablo también menciona moby issue 18892:

Después de extraer una imagen firmada, hay una entrada "extra" (con etiqueta <none>) en la salida "docker images".
Esto hace que sea difícil rmi la imagen (tienes que forzarla, o bien eliminar primero la entrada correctamente etiquetada, o eliminar por resumen.

 46
Author: VonC,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-12 05:38:53
docker images | grep none | awk '{ print $3; }' | xargs docker rmi

Puedes probar esto simplemente

 5
Author: tansadio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-26 10:11:25

Docker image prune elimina todas las imágenes colgantes (aquellas con etiqueta none). docker image prune - a también eliminaría cualquier imagen que no tenga un contenedor que las use.

La diferencia entre imágenes colgantes y no utilizadas se explica en este hilo de stackoverflow.

 4
Author: herm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-25 11:16:07

Puedes ir docker rmi $(docker images --format '{{.ID}}' --filter=dangling=true). Vea la documentación de imágenes para más opciones.

$ docker images
REPOSITORY                  TAG                 IMAGE ID            CREATED             SIZE
<none>                      <none>              94870cda569b        4 seconds ago       673MB
python                      2.7                 320a06f42b5f        10 days ago         673MB
mysql                       latest              e799c7f9ae9c        2 months ago        407MB
gcavalcante8808/semaphore   latest              86e863e11461        2 months ago        537MB
redis                       latest              e32ef7250bc1        2 months ago        184MB
rabbitmq                    3.6.9-management    7e69e14cc496        2 months ago        179MB
rabbitmq                    3.6.9               eb2e4968538a        2 months ago        179MB
jordan/rundeck              latest              6d40b57b1572        2 months ago        660MB
rabbitmq                    3.5.6-management    dbfe8d18809a        19 months ago       304MB

$ docker rmi $(docker images --format '{{.ID}}' --filter=dangling=true)
Deleted: sha256:94870cda569b8cf5f42be25af107d464c993b4502a1472c1679bf2d213b6c0a6
 1
Author: GHETTO.CHiLD,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-18 21:13:25

Elimine las imágenes que tienen none como nombre de repositorio usando lo siguiente:

docker rmi $(docker images | grep "^<none" | awk '{print $3}')

Eliminar imágenes que tienen none etiqueta o nombre del repositorio:

docker rmi $(docker images | grep "none" | awk '{print $3}')
 1
Author: Jerome Anthony,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-15 17:07:58

Para eliminar imágenes colgantes por favor utilice :

docker image rm $(docker images --format "{{.ID}}" --filter "dangling=true")

Por favor refiérase a mi respuesta aquí para una descripción más detallada: https://unix.stackexchange.com/a/445664/292327

 0
Author: Aditya Satyavada,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-24 03:51:06

He encontrado docker image prune -f más útil y lo uso todo el tiempo durante mi trabajo diario, usar la etiqueta -f no me pedirá confirmación. Más detalles aquí

 0
Author: justjais,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-20 10:01:28

Intenta

docker rmi -f $(docker images -a | awk 'NR> 1 || $2 = "<none>" {print $3}') , mientras que puede haber comandos más limpios

Actualizado

 -1
Author: user2915097,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-25 10:28:04

Simplemente elimine las imágenes usando sus ID:

# docker rmi 5e2dfc857e73 d053e988f23d ...
 -1
Author: Daniel Borges,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-18 17:57:54
docker rmi $(docker images -a -q)

Indicó las siguientes imágenes en uso. Creo que este comando se deshace de imágenes no deseadas.

 -3
Author: Karl Morrison,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-25 10:05:30