puedo escribir
docker images --filter "dangling=true"
¿Qué otros filtros puedo utilizar?
¿Puedo usar algo como esto?
docker images --filter "running=false"
Respuestas:
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 greppara filtrar imágenes por algún valor:
$ docker images | grep somevalue
docker images -f "reference=*/*/*latest": Esto le proporcionaría algo parecido k8s:30000/github/someImage:latest. o docker images -f "reference=*/*latest"te atraparía k8s:30000/someImage:latest. si desea limpiarlos -docker rmi $(docker images -f "reference=*/*/*latest" -q --no-trunc)
También puede utilizar el REPOSITORYargumento docker imagespara 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, latestel 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:
trueo 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