अद्यतन सितंबर 2016: डॉकटर 1.13: पीआर 26108 और 86de7c0 के लिए कुछ नए आदेशों को यह देखने में मदद करने के लिए पेश करें कि डॉक डेमॉन डेटा डिस्क पर कितना स्थान ले रहा है और आसानी से "अनावश्यक" सफाई के लिए अनुमति देता है।
docker system prune
सभी झूलने वाले डेटा को हटा देगा (यानी क्रम में: कंटेनर बंद हो गए, बिना कंटेनरों के वॉल्यूम और बिना कंटेनर वाले चित्र)। यहां तक कि अप्रयुक्त डेटा, -a
विकल्प के साथ ।
आपके पास भी है:
के लिए अप्रयुक्त छवियों, उपयोग docker image prune -a
(झूलने दूर करने के लिए और ununsed चित्र)।
चेतावनी: ' अप्रयुक्त ' का अर्थ है "किसी कंटेनर द्वारा संदर्भित चित्र नहीं": उपयोग करने से पहले सावधान रहें -a
।
जैसा कि एएल के जवाब में चित्रित किया गया है , docker system prune --all
सभी अप्रयुक्त छवियों को न केवल झूलने वाले हटा देगा ... जो थोड़ा बहुत हो सकता है।
विकल्प केdocker xxx prune
साथ संयोजन छंटाई को सीमित करने का एक शानदार तरीका हो सकता है ( docker SDK API 1.28 न्यूनतम, इसलिए docker 4.04 )--filter
वर्तमान में समर्थित फ़िल्टर हैं:
until (<timestamp>)
- दिए गए टाइमस्टैम्प से पहले केवल कंटेनर, चित्र और नेटवर्क हटाएं
label
( label=<key>
, label=<key>=<value>
, label!=<key>
, या label!=<key>=<value>
) - केवल (या के साथ कंटेनर, छवियों, नेटवर्क, और मात्रा को दूर किए बिना , के मामले में label!=...
प्रयोग किया जाता है) निर्दिष्ट लेबल।
एक उदाहरण के लिए " Prune images " देखें ।
मूल उत्तर (सितम्बर 2016)
मैं आमतौर पर करता हूं:
docker rmi $(docker images --filter "dangling=true" -q --no-trunc)
मेरे पास उन [झूलने वाली छवियों] को हटाने के लिए एक उपनाम है : 13drmi
dangling=true
फिल्टर अप्रयुक्त छवियों पाता है
इस तरह, किसी भी मध्यवर्ती छवि को अब लेबल की गई छवि से संदर्भित नहीं किया जाता है।
मैं बाहर की प्रक्रियाओं (कंटेनरों) के लिए पहले ऐसा ही करता हूं
alias drmae='docker rm $(docker ps -qa --no-trunc --filter "status=exited")'
के रूप में haridsv टिप्पणियों में बताते हैं :
तकनीकी रूप से, आपको पहले छवियों को साफ करने से पहले कंटेनरों को साफ करना चाहिए, क्योंकि इससे अधिक झूलने वाली छवियां और कम त्रुटियां होंगी ।
जेस फ्रैजेल (जेफ्रैजेल) ने बैश आर्क फ़ंक्शन :
dcleanup(){
docker rm -v $(docker ps --filter status=exited -q 2>/dev/null) 2>/dev/null
docker rmi $(docker images --filter dangling=true -q 2>/dev/null) 2>/dev/null
}
पुरानी छवियों को हटाने के लिए, और न केवल "अप्रतिबंधित-झूलने" वाली छवियां, आप विचार कर सकते हैं docker-gc
:
एक साधारण डॉकटर कंटेनर और छवि कचरा संग्रह स्क्रिप्ट।
- एक घंटे से अधिक समय तक बाहर रहने वाले कंटेनरों को हटा दिया जाता है।
- ऐसी छवियां जो किसी भी शेष कंटेनर से संबंधित नहीं हैं, उसके बाद हटा दी जाती हैं।
"dangling=true"
वास्तव में इसका क्या अर्थ है, इस पर प्रलेखन है?