我会写
docker images --filter "dangling=true"
我还可以使用其他哪些过滤器?
我可以使用这样的东西吗?
docker images --filter "running=false"
Answers:
Docker v1.13.0支持以下条件:
-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)
或用于grep
按某些值过滤图像:
$ docker images | grep somevalue
docker images -f "reference=*/*/*latest"
-这会给您带来类似于k8s:30000/github/someImage:latest
。或docker images -f "reference=*/*latest"
会得到你k8s:30000/someImage:latest
。如果您想清理它们docker rmi $(docker images -f "reference=*/*/*latest" -q --no-trunc)
您也可以使用REPOSITORY
参数docker images
过滤图像。
例如,假设我们有图像:
$ 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
我们可以显式过滤具有给定名称的所有图像:
$ docker images example.com/bar
REPOSITORY TAG IMAGE ID CREATED SIZE
example.com/bar latest b94c37de2801 9 months ago 285 MB
Docker还支持遍历:
$ 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
*
通配符不适用于/
存储库名称。因此,在最后一个示例中,列出所有带有标签latest
的图像的命令docker images --filter=reference='*:latest'
是错误的。正确的命令是docker images --filter=reference='*/*:latest'
。
--filter name=something
-一直以来,简单的解决方案是您根本不需要(n显式)过滤器!
openapitools/openapi-generator-cli
,那么docker images open*
将找不到它。但是docker images open*/*
会找到它的。
在Docker v1.7中:
当前支持的过滤器是:
true
或false
)label=<key>
或label=<key>=<value>
)before=<image-name>[:tag]|<image-id>|<image@digest>
since=(<image-name>[:tag]|<image-id>|<image@digest>)
须藤码头工人图像--filter“ running = false”
为了清理旧的停止的容器,您可以使用:
docker container prune
要删除未标记的图像,可以使用:
docker image prune
还有另一个示例,可与版本17.09 ++一起使用:
sudo docker rmi $(sudo docker images -f=reference="registry.gitlab.com/example-app" -f "dangling=true" -q)
说明:
reference
-我们通过存储库名称引用图像;dangling=true
-我们正在删除未标记的图像;-q
-表示安静,仅显示图像的数字ID,而不显示整行。此命令将删除所有存储库名称为“ registry.gitlab.com/example-app”且未标记的图像(<none>
位于标签列中)
参考链接:https : //docs.docker.com/engine/reference/commandline/images/#filtering