按存储库名称过滤docker镜像

时间:2015-09-27 19:28:25

标签: docker

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

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

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

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

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

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

5 个答案:

答案 0 :(得分:45)

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

docker images testImage

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

在存储库名称上指定标记

来源:Docker images

答案 1 :(得分:12)

您可以按referencenametag的组合)过滤图片:

docker image ls --filter 'reference=scdockerdemo_*'

答案 2 :(得分:12)

根据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

答案 3 :(得分:9)

根据this answer to a similar question,过滤器选项目前仅支持&#34; dangling = true&#34;。

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

$ docker images | grep scdockerdemo

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

$ docker images | awk '$1 ~ /scdockerdemo/ { print }'

答案 4 :(得分:0)

提供其他选择供参考

  

docker图像| ruby -ne'如果$ _ =〜/ harbor /'