过滤命令
目录
您可以使用 --filter
标志来限定命令范围。过滤时,命令只包含与您指定的模式匹配的条目。
使用过滤器
--filter
标志期望一个由操作符分隔的键值对。
$ docker COMMAND --filter "KEY=VALUE"
键表示您要过滤的字段。值是指定字段必须匹配的模式。操作符可以是等于 (=
) 或不等于 (!=
)。
例如,命令 docker images --filter reference=alpine
过滤 docker images
命令的输出,仅打印 alpine
镜像。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 20.04 33a5cc25d22c 36 minutes ago 101MB
ubuntu 18.04 152dc042452c 36 minutes ago 88.1MB
alpine 3.16 a8cbb8c69ee7 40 minutes ago 8.67MB
alpine latest 7144f7bab3d4 40 minutes ago 11.7MB
busybox uclibc 3e516f71d880 48 minutes ago 2.4MB
busybox glibc 7338d0c72c65 48 minutes ago 6.09MB
$ docker images --filter reference=alpine
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine 3.16 a8cbb8c69ee7 40 minutes ago 8.67MB
alpine latest 7144f7bab3d4 40 minutes ago 11.7MB
可用字段(此处为 reference
)取决于您运行的命令。有些过滤器需要精确匹配。有些支持部分匹配。有些过滤器允许您使用正则表达式。
请参阅各命令的 CLI 参考描述,了解每个命令支持的过滤功能。
组合过滤器
您可以通过传递多个 --filter
标志来组合多个过滤器。以下示例展示了如何打印所有匹配 alpine:latest
或 busybox
的镜像 - 这是一个逻辑 OR
。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 20.04 33a5cc25d22c 2 hours ago 101MB
ubuntu 18.04 152dc042452c 2 hours ago 88.1MB
alpine 3.16 a8cbb8c69ee7 2 hours ago 8.67MB
alpine latest 7144f7bab3d4 2 hours ago 11.7MB
busybox uclibc 3e516f71d880 2 hours ago 2.4MB
busybox glibc 7338d0c72c65 2 hours ago 6.09MB
$ docker images --filter reference=alpine:latest --filter=reference=busybox
REPOSITORY TAG IMAGE ID CREATED SIZE
alpine latest 7144f7bab3d4 2 hours ago 11.7MB
busybox uclibc 3e516f71d880 2 hours ago 2.4MB
busybox glibc 7338d0c72c65 2 hours ago 6.09MB
多个否定过滤器
某些命令支持对 标签 使用否定过滤器。否定过滤器只考虑与指定模式不匹配的结果。以下命令将修剪所有未被标记为 foo
的容器。
$ docker container prune --filter "label!=foo"
组合多个否定标签过滤器时有一个需要注意的地方。多个否定过滤器会创建一个单一的否定约束 - 一个逻辑 AND
。以下命令会修剪除同时标记为 foo
和 bar
的容器之外的所有容器。标记为 foo
或 bar
但非同时标记的容器将被修剪。
$ docker container prune --filter "label!=foo" --filter "label!=bar"
参考
有关过滤命令的更多信息,请参阅支持 --filter
标志的命令的 CLI 参考描述
docker config ls
docker container prune
docker image prune
docker image ls
docker network ls
docker network prune
docker node ls
docker node ps
docker plugin ls
docker container ls
docker search
docker secret ls
docker service ls
docker service ps
docker stack ps
docker system prune
docker volume ls
docker volume prune