डॉकटर फिल्टर का उपयोग कैसे करें


84

मैं लिख सकता हूँ

docker images --filter "dangling=true"

मैं किस अन्य फिल्टर का उपयोग कर सकता हूं?

मैं कुछ इस तरह का उपयोग कर सकते हैं?

docker images --filter "running=false"

जवाबों:


89

Docker v1.13.0 निम्नलिखित स्थितियों का समर्थन करता है:

  -f, --filter value    Filter output based on conditions provided (default [])
                        - dangling=(true|false)
                        - label=<key> or label=<key>=<value>
                        - before=(<image-name>[:tag]|<image-id>|<image@digest>)
                        - since=(<image-name>[:tag]|<image-id>|<image@digest>)
                        - reference=(pattern of an image reference)

या grepकुछ मान द्वारा छवियों को फ़िल्टर करने के लिए उपयोग करें:

$ docker images | grep somevalue

संदर्भ


5
कृपया अपना उत्तर अपडेट करें - वर्तमान में, फरवरी 2017 तक, यह कुछ और पैरामेट्स का समर्थन करता है।
ग्रेग डबिकि

5
यह सही नहीं है, लेकिन ऊपर आप docker images -f "reference=*/*/*latest"इस तरह की चीजों का उपयोग कर सकते हैं - यह आपको कुछ भी मिलेगा k8s:30000/github/someImage:latest। या docker images -f "reference=*/*latest"आपको मिलेगा k8s:30000/someImage:latest। अगर आप उन लोगों को साफ़ करना चाहते हैं -docker rmi $(docker images -f "reference=*/*/*latest" -q --no-trunc)
Mark_Eng 20

हम रेपो नाम से कुछ छवियों को कैसे निकाल सकते हैं?
चर

40

आप छवियों को फ़िल्टर REPOSITORYकरने के docker imagesलिए तर्क का उपयोग भी कर सकते हैं ।

उदाहरण के लिए, मान लें कि हमारे पास चित्र हैं:

$ docker images
REPOSITORY           TAG          IMAGE ID         CREATED         SIZE
local-foo            latest       17864104b328     2 months ago    100 MB
example.com/bar      latest       b94c37de2801     9 months ago    285 MB
example.com/baz      latest       a004e3ac682c     2 years ago     221 MB

हम दिए गए नाम के साथ सभी छवियों के लिए स्पष्ट रूप से फ़िल्टर कर सकते हैं:

$ docker images example.com/bar
REPOSITORY           TAG          IMAGE ID         CREATED         SIZE
example.com/bar      latest       b94c37de2801     9 months ago    285 MB

डॉकर भी ग्लोबिंग का समर्थन करता है:

$ docker images "example.com/*"
REPOSITORY           TAG          IMAGE ID         CREATED         SIZE
example.com/bar      latest       b94c37de2801     9 months ago    285 MB
example.com/baz      latest       a004e3ac682c     2 years ago     221 MB

यहां आधिकारिक डॉक्स


3
ध्यान दें कि *वाइल्डकार्ड वर्ण /रिपॉजिटरी नाम पर लागू नहीं होता है । इसलिए अंतिम उदाहरण में, टैग latestके साथ सभी छवियों को सूचीबद्ध करने के लिए कमांड docker images --filter=reference='*:latest'गलत है। सही कमांड है docker images --filter=reference='*/*:latest'
तोमा ज़ाल्क़ी

यह सब समय मैं देख रहा था --filter name=something- और सभी के साथ, सरल समाधान यह था कि आपको बिल्कुल (एन स्पष्ट) फिल्टर की आवश्यकता नहीं है!
ट्रिपलए

2
अभी भी उन लोगों के लिए ... यदि आप छवि की तलाश कर रहे हैं openapitools/openapi-generator-cli, तो docker images open*यह नहीं मिलेगा। लेकिन docker images open*/*मिल जाएगा।
रयान लुंडी

12

Docker v1.7 में:

वर्तमान में समर्थित फ़िल्टर हैं:

  • झूलना (बुलियन - trueया false)
  • लेबल ( label=<key>या label=<key>=<value>)

1
डोकर v1.12 के रूप में, आप का उपयोग कर फ़िल्टर कर सकते हैं before=<image-name>[:tag]|<image-id>|<image@digest>औरsince=(<image-name>[:tag]|<image-id>|<image@digest>)
xwlee

6

मेरे लिए,

docker images -q | while read IMAGE_ID; do
    docker inspect --format='{{.Created}}' --type=image ${IMAGE_ID}
done

चाल चली। दिनांक आदेश उसी प्रारूप में आउटपुट का उत्पादन करने में सक्षम है

date -Ins --date='10 weeks ago'

जो मुझे टाइमस्टैम्प की तुलना करने की अनुमति देता है। मैं अभी भी सुविधा के लिए छवियों को झूलने के लिए फ़िल्टर का उपयोग करता हूं, हालांकि।


3

sudo docker की छवियाँ - "चल रहा है = गलत"

पुराने बंद किए गए कंटेनरों की सफाई के लिए आप उपयोग कर सकते हैं:
docker container prune

असंबद्ध छवियों को हटाने के लिए आप इसका उपयोग कर सकते हैं:
docker image prune


0

एक और उदाहरण है, संस्करण 17.09 ++ के साथ काम करता है:

sudo docker rmi $(sudo docker images -f=reference="registry.gitlab.com/example-app" -f "dangling=true" -q)

स्पष्टीकरण:

  • reference - हम रिपॉजिटरी नाम से छवियों को संदर्भित कर रहे हैं;
  • dangling=true - हम अछूता चित्र हटा रहे हैं;
  • -q - एक पूरी लाइन के बजाय, केवल संख्यात्मक आईडी छवियों को दिखाते हुए शांत है।

यह आदेश उन सभी छवियों को हटा देता है जिनमें एक रिपॉजिटरी का नाम "रजिस्ट्री.गीतलबी.प्लेक्स-app" और अनटैग ( <none>एक टैग कॉलम में है)

संदर्भ लिंक: https://docs.docker.com/engine/reference/commandline/images/#filtering


-1

FYI करें, बिना फ़िल्टर के, लेकिन सभी छवियों को हटाने के लिए जब आप परीक्षण या सीखने के रूप में उपयोग करते हैं,

docker छवि rm -f $ (docker छवि ls)

अभिवादन।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.