win 10的PowerShell下删除所有Docker镜像中tag为<none> 的镜像

参考了https://www.zixi.org/archives/docker_images_filter.html

重新整理出的方法记录在此。

docker images filter 镜像查询过滤方式

 1) 找出tag为<none>

     docker images -f "dangling=true"

2)找出tag为<none>的镜像,加参数-q, 只显示sha值

 docker images --filter dangling=true -q --no-trunc

sha256:d866e249366a3b9d3b4ea1927576c78da5887c5ef52a6a92eeba47bdbb7da178

sha256:96288d6bb4a62e6ec79c22d99e4d59024a835f0de02b2c423cd85e146fe74b38

sha256:d408c866fc8b09ff1c05fa079f8971b8ee14da085571f07b37835306cdbefae9

sha256:da8c2b5f54be2673421013a663ac5e72bec0832f06209596d9c8a2afc9ebff80

sha256:9b691b94eae4f25a5f723ded3bf1fe309f076cb1ff4f1493fce6aa50f2c0f581

3)找出tag为<none>的镜像,显示完整信息

docker images --filter dangling=true  --no-trunc

 

REPOSITORY          TAG                 IMAGE ID                                                                  CREATED             SIZE

<none>              <none>              sha256:d866e249366a3b9d3b4ea1927576c78da5887c5ef52a6a92eeba47bdbb7da178   3 hours ago         64.2MB

<none>              <none>              sha256:96288d6bb4a62e6ec79c22d99e4d59024a835f0de02b2c423cd85e146fe74b38   3 hours ago         114MB

<none>              <none>              sha256:d408c866fc8b09ff1c05fa079f8971b8ee14da085571f07b37835306cdbefae9   3 hours ago         114MB

<none>              <none>              sha256:da8c2b5f54be2673421013a663ac5e72bec0832f06209596d9c8a2afc9ebff80   4 hours ago         114MB

<none>              <none>              sha256:9b691b94eae4f25a5f723ded3bf1fe309f076cb1ff4f1493fce6aa50f2c0f581   9 hours ago         98.8MB

 

删除所有Docker镜像总tag为<none>的镜像 的指令:

 

      V:\dockers\gnome-3-28-1804DockerBuild>docker rmi  (docker images --filter dangling=true -q --no-trunc)

原来的镜像

win 10的PowerShell下删除所有Docker镜像中tag为<none> 的镜像

执行后的结果

----------------------------------------------------------------------------------------------------------------------------

win 10的PowerShell下删除所有Docker镜像中tag为<none> 的镜像

其它参数的应用

  •   找出tag为<none>的, 只返回image id

     docker images -f "dangling=true" -q

  • 根据repository名称和tag模糊过滤,如果repository有/或小数点符号,通过*是无法匹配的

     docker images --filter=reference='busy*:*libc'

  • 使用beforesince根据时间查找,实际上以repository的名字作为时间分隔,

     docker images --filter "before=image1"

     docker images --filter "since=image2"

  • 此外还有label, label=<key> or label=<key>=<value>

     docker images --filter "label=com.example.version" ,

     docker image inspect <image id>