मैं लिख सकता हूँ
docker images --filter "dangling=true"
मैं किस अन्य फिल्टर का उपयोग कर सकता हूं?
मैं कुछ इस तरह का उपयोग कर सकते हैं?
docker images --filter "running=false"
जवाबों:
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
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)
आप छवियों को फ़िल्टर 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
*वाइल्डकार्ड वर्ण /रिपॉजिटरी नाम पर लागू नहीं होता है । इसलिए अंतिम उदाहरण में, टैग latestके साथ सभी छवियों को सूचीबद्ध करने के लिए कमांड docker images --filter=reference='*:latest'गलत है। सही कमांड है docker images --filter=reference='*/*:latest'।
--filter name=something- और सभी के साथ, सरल समाधान यह था कि आपको बिल्कुल (एन स्पष्ट) फिल्टर की आवश्यकता नहीं है!
openapitools/openapi-generator-cli, तो docker images open*यह नहीं मिलेगा। लेकिन docker images open*/*मिल जाएगा।
Docker v1.7 में:
वर्तमान में समर्थित फ़िल्टर हैं:
trueया false)label=<key>या label=<key>=<value>)before=<image-name>[:tag]|<image-id>|<image@digest>औरsince=(<image-name>[:tag]|<image-id>|<image@digest>)
मेरे लिए,
docker images -q | while read IMAGE_ID; do
docker inspect --format='{{.Created}}' --type=image ${IMAGE_ID}
done
चाल चली। दिनांक आदेश उसी प्रारूप में आउटपुट का उत्पादन करने में सक्षम है
date -Ins --date='10 weeks ago'
जो मुझे टाइमस्टैम्प की तुलना करने की अनुमति देता है। मैं अभी भी सुविधा के लिए छवियों को झूलने के लिए फ़िल्टर का उपयोग करता हूं, हालांकि।
sudo docker की छवियाँ - "चल रहा है = गलत"
पुराने बंद किए गए कंटेनरों की सफाई के लिए आप उपयोग कर सकते हैं:
docker container prune
असंबद्ध छवियों को हटाने के लिए आप इसका उपयोग कर सकते हैं:
docker image prune
एक और उदाहरण है, संस्करण 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