puedo escribir
docker images --filter "dangling=true"
¿Qué otros filtros puedo utilizar?
¿Puedo usar algo como esto?
docker images --filter "running=false"
Docker v1.13.0 admite las siguientes condiciones:
-f, --filter value Filter output based on conditions provided (default [])
- dangling=(true|false)
- label=<key> or label=<key>=<value>
- before=(<image-name>[:tag]|<image-id>|<image@digest>)
- since=(<image-name>[:tag]|<image-id>|<image@digest>)
- reference=(pattern of an image reference)
O use grep
para filtrar imágenes por algún valor:
$ docker images | grep somevalue
También puede utilizar el REPOSITORY
argumento docker images
para filtrar las imágenes.
Por ejemplo, supongamos que tenemos las imágenes:
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
local-foo latest 17864104b328 2 months ago 100 MB
example.com/bar latest b94c37de2801 9 months ago 285 MB
example.com/baz latest a004e3ac682c 2 years ago 221 MB
Podemos filtrar explícitamente todas las imágenes con un nombre determinado:
$ docker images example.com/bar
REPOSITORY TAG IMAGE ID CREATED SIZE
example.com/bar latest b94c37de2801 9 months ago 285 MB
Docker también admite globbing:
$ docker images "example.com/*"
REPOSITORY TAG IMAGE ID CREATED SIZE
example.com/bar latest b94c37de2801 9 months ago 285 MB
example.com/baz latest a004e3ac682c 2 years ago 221 MB
*
carácter comodín no se aplica /
en el nombre del repositorio. Por lo tanto, en el último ejemplo, para enumerar todas las imágenes con etiqueta, latest
el comando docker images --filter=reference='*:latest'
es incorrecto. El comando correcto es docker images --filter=reference='*/*:latest'
.
--filter name=something
, y todo el tiempo, ¡la solución simple fue que no necesita un filtro (n explícito) en absoluto!
openapitools/openapi-generator-cli
, docker images open*
no la encontrarás. Pero docker images open*/*
lo encontraré.
En Docker v1.7:
Los filtros admitidos actualmente son:
true
o false
)label=<key>
o label=<key>=<value>
)before=<image-name>[:tag]|<image-id>|<image@digest>
&since=(<image-name>[:tag]|<image-id>|<image@digest>)
Para mi,
docker images -q | while read IMAGE_ID; do
docker inspect --format='{{.Created}}' --type=image ${IMAGE_ID}
done
Hizo el truco. El comando de fecha puede producir una salida en el mismo formato a través de
date -Ins --date='10 weeks ago'
lo que me permite comparar marcas de tiempo. Sin embargo, sigo usando el filtro para colgar imágenes por conveniencia.
sudo docker images --filter "running = false"
Para la limpieza de contenedores viejos tapados puede utilizar:
docker container prune
Para eliminar imágenes sin etiquetar, puede utilizar:
docker image prune
Hay otro ejemplo, funciona con la versión 17.09 ++:
sudo docker rmi $(sudo docker images -f=reference="registry.gitlab.com/example-app" -f "dangling=true" -q)
Explicación:
reference
- estamos referenciando imágenes por nombre de repositorio;dangling=true
- estamos eliminando imágenes sin etiquetar;-q
- significa silencioso, mostrando solo identificaciones numéricas de imágenes, en lugar de una línea completa.Este comando elimina todas las imágenes que tienen un nombre de repositorio "registry.gitlab.com/example-app" y sin etiquetar (tienen <none>
en una columna de etiqueta)
Enlace de referencia: https://docs.docker.com/engine/reference/commandline/images/#filtering
docker images -f "reference=*/*/*latest"
: Esto le proporcionaría algo parecidok8s:30000/github/someImage:latest
. odocker images -f "reference=*/*latest"
te atraparíak8s:30000/someImage:latest
. si desea limpiarlos -docker rmi $(docker images -f "reference=*/*/*latest" -q --no-trunc)