篩選指令
目錄
您可以使用 --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