按存储库名称过滤docker镜像

kuf*_*fel 33 docker

使用该命令docker images,您可以列出主机上的所有图像:

REPOSITORY                   TAG                 IMAGE ID            CREATED             VIRTUAL SIZE
scdockerdemo_php             latest              155d80ea7642        4 minutes ago       265.3 MB
scdockerdemo_node            latest              6189bc65c3fe        8 minutes ago       861.4 MB
php                          5.6-apache          fc50bce69ea0        3 days ago          481.3 MB
node                         4.1                 fc81e574af43        3 days ago          641.1 MB
Run Code Online (Sandbox Code Playgroud)

使用docker images -f "tag=latest",您可以过滤具有特定标记的图像.

如何过滤存储库名称?例如docker images -f "repository=scdockerdemo_*"

此命令始终返回无效过滤器'存储库'

https://docs.docker.com/reference/commandline/images/

Vik*_*kas 50

如果要按存储库名称(例如:testImage)进行过滤,请使用以下命令:

docker images testImage
Run Code Online (Sandbox Code Playgroud)

如果您有多个具有相同存储库名称但不同标记的图像,则可以使用':'(例如testImage:<whatever tag>)在存储库名称上指定标记

来源:Docker图片

  • 很好的答案。这还允许将存储库用作过滤器(例如 powershell docker rmi $(docker images &lt;myRepo&gt;* -q))。 (2认同)
  • 好消息,你也可以在标签名称中使用通配符,比如``docker images java:8*``或``docker images tomcat:7*``! (2认同)

小智 22

根据https://docs.docker.com/engine/reference/commandline/images/上的文档,您可以通过用双引号括起来来匹配通配符:

docker images "scdockerdemo_*"

**特殊字符**当您在存储库名称中有特殊字符(如'/')时,您应该将其转义为按存储库名称进行过滤.

EX)

> docker images "zirho6\/*"
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
zirho6/aaaa              latest              946bf5cc28fc        2 days ago          997MB
zirho6/bbbb              latest              741a6e368d07        10 days ago         866MB
zirho6/ccc               latest              173b36570522        12 days ago         853MB
zirho6/dddd              latest              e08e5c202e9b        13 days ago         853MB
Run Code Online (Sandbox Code Playgroud)

  • 另外值得一提的是,如果名称类似于“docker.elastic.co/logstash/logstash”,您需要应用两个通配符:“docker.elastic.co/*/*”,否则它不起作用。 (4认同)

mdh*_*mdh 13

您可以通过引用过滤图像(组合nametag):

docker image ls --filter 'reference=scdockerdemo_*'
Run Code Online (Sandbox Code Playgroud)

  • 重要的提示。如果 name 看起来像:“docker.elastic.co/logstash/logstash”匹配需要以形式应用:“docker.elastic.co/*/*”,否则它不起作用。 (4认同)

Leo*_*Leo 9

根据对类似问题的回答,过滤器选项目前仅支持"悬空=真".

如果您正在使用Bash,最简单的方法可能是:

$ docker images | grep scdockerdemo
Run Code Online (Sandbox Code Playgroud)

或者,您可以尝试使用awk匹配第一列中的字符串:

$ docker images | awk '$1 ~ /scdockerdemo/ { print }'
Run Code Online (Sandbox Code Playgroud)

  • 我编辑了我的答案 - 尝试将第一列中的存储库名称与awk匹配.然后你可以`docker rmi $(docker images | awk'$ 1~/scdockerdemo/{print $ 3}')`. (4认同)