篩選命令
目錄
您可以使用 --filter 旗標來限制指令的範圍。進行篩選時,指令僅會包含符合您指定模式的項目。
使用篩選器
--filter 旗標預期輸入由運算子分隔的鍵值對。
$ docker COMMAND --filter "KEY=VALUE"
「鍵」(key) 代表您要篩選的欄位。「值」(value) 是指定欄位必須符合的模式。運算子可以是等於 (=) 或不等於 (!=)。
例如,指令 docker images --filter reference=alpine 會篩選 docker images 指令的輸出,僅列出 alpine 映像檔。
$ docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
ubuntu 24.04 33a5cc25d22c 36 minutes ago 101MB
ubuntu 22.04 152dc042452c 36 minutes ago 88.1MB
alpine 3.21 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.21 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 24.04 33a5cc25d22c 2 hours ago 101MB
ubuntu 22.04 152dc042452c 2 hours ago 88.1MB
alpine 3.21 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
多重否定篩選
有些指令支援對 標籤 (labels) 使用否定篩選。否定篩選僅會考慮「不符合」指定模式的結果。以下指令將會清除所有未標記為 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 lsdocker container prunedocker image prunedocker image lsdocker network lsdocker network prunedocker node lsdocker node psdocker plugin lsdocker container lsdocker searchdocker secret lsdocker service lsdocker service psdocker stack psdocker system prunedocker volume lsdocker volume prune