Docker इमेज हटाना
अब जब आप समझ गए हैं कि Docker इमेज क्या हैं और इन्हें नियंत्रण में रखना क्यों ज़रूरी है, तो आइए वास्तविक हटाने की प्रक्रिया में उतरते हैं।
Docker कुछ कमांड देता है जिनसे आप अपनी इमेज प्रबंधित कर सकते हैं — जो आपके पास हैं उनकी सूची देखने से लेकर जिनकी ज़रूरत नहीं उन्हें हटाने तक।
मौजूदा Docker इमेज जाँचना
इमेज हटाने से पहले, आपको पता होना चाहिए कि आपके सिस्टम पर वास्तव में स्पेस किसने घेर रखा है। docker images कमांड इस सफाई प्रक्रिया का पहला कदम है।
docker images
यह कमांड आपकी सभी Docker इमेज की सूची बनाती है, साथ ही इन जैसी उपयोगी जानकारी के साथ:
- रेपोजिटरी नाम
- टैग
- इमेज ID
- बनाने की तारीख
- आकार

छवि 1 - उपलब्ध Docker इमेज
साइज कॉलम पर नज़र डालना आँखें खोल सकता है। जैसा कि आप छवि 1 में देख सकते हैं, Oracle डेटाबेस इमेज 15GB से भी ज्यादा है!
अगर आप सबसे ज्यादा स्पेस लेने वाली इमेज पहचानने के लिए साइज के हिसाब से सॉर्ट करना चाहते हैं:
docker images --format "{{.Size}}\t{{.Repository}}:{{.Tag}}" | sort -h

छवि 2 - साइज के अनुसार सॉर्ट की गई उपलब्ध Docker इमेज
यह एक अधिक संक्षिप्त अवलोकन है, क्योंकि इसमें इमेज की सभी प्रॉपर्टी शामिल नहीं हैं।
किसी विशेष Docker इमेज को हटाना
जब आप ऐसी इमेज पहचान लें जिनकी ज़रूरत नहीं है, तो आप उन्हें एक-एक करके docker rmi कमांड से हटा सकते हैं (जहाँ rmi का मतलब है "remove image").
आप इमेज को उसकी ID या repository:tag संयोजन से हटा सकते हैं:
# इमेज ID से हटाएँ
docker rmi 4e7024df2f20
# repository:tag से हटाएँ
docker rmi nginx:latest

छवि 3 - व्यक्तिगत Docker इमेज हटाने के दो तरीके
यह भी ध्यान देने योग्य है कि Docker आपको उन इमेज को हटाने नहीं देगा जो वर्तमान में कंटेनरों द्वारा उपयोग में हैं। आपको ऐसा त्रुटि संदेश मिलेगा:

छवि 4 - उपयोग में चल रही Docker इमेज को हटाने का प्रयास
ऐसा दिखे तो आपको इमेज हटाने से पहले आश्रित कंटेनर को रोककर हटाना होगा, या force विकल्प का उपयोग करना होगा (जिसे मैं आगे कवर करूँगा)।
एक साथ कई Docker इमेज हटाना
इमेज एक-एक करके हटाना थकाऊ हो सकता है, खासकर जब बड़ी सफाई करनी हो। सौभाग्य से, Docker आपको एक ही कमांड से कई इमेज हटाने देता है।
आप स्पेस से अलग की गई इमेज ID या repo:tag की सूची दे सकते हैं:
docker rmi postgres:latest mariadb:latest

छवि 5 - एक साथ कई Docker इमेज हटाना
या, उन्नत परिदृश्यों के लिए, आप docker images को फ़िल्टरिंग और पाइपिंग के साथ जोड़ सकते हैं। उदाहरण के लिए, यह कमांड latest टैग वाली सभी इमेज हटाएगा:
docker rmi $(docker images --filter=reference="*:latest" -q)

छवि 6 - किसी विशेष टैग वाली सभी Docker इमेज हटाना
हाँ, सिवाय उन इमेज के जो चल रहे कंटेनरों द्वारा उपयोग में हैं।
इन बल्क रिमूवल कमांड के साथ सावधानी बरतें, क्योंकि वे पुष्टि नहीं पूछते। Enter दबाने से पहले अपने फ़िल्टर मानदंड को हमेशा दोबारा जाँचें।
डैंगलिंग और बिना उपयोग वाली इमेज हटाना
जब आप किसी इमेज को रीबिल्ड करते हैं, तो Docker बदली हुई चीज़ों के लिए नई लेयर बनाता है और बिना बदली चीज़ों के लिए कैश लेयरों को पुन: उपयोग करता है। पिछले वर्ज़न की यूनिक लेयरें "डैंगलिंग" बन जाती हैं — वे डिस्क पर तो मौजूद होती हैं लेकिन किसी नामित इमेज का हिस्सा नहीं होतीं।
आप डैंगलिंग इमेज की पहचान इस तरह कर सकते हैं:
docker images -f "dangling=true"

छवि 7 - डैंगलिंग Docker इमेज की सूची
अब, उन्हें एक साथ हटाने के लिए prune कमांड चलाएँ:
docker image prune

छवि 8 - Docker इमेज प्रून करना
यह कमांड आगे बढ़ने से पहले पुष्टि माँगेगा। अगर आप सब हटाने के लिए आश्वस्त हैं:
docker image prune -f
और अधिक आक्रामक सफाई के लिए, आप डैंगलिंग और बिना उपयोग वाली (जो किसी कंटेनर द्वारा उपयोग में नहीं हैं) दोनों प्रकार की इमेज हटा सकते हैं:
docker image prune -a

छवि 9 - सभी बिना उपयोग वाली इमेज हटाना
यह अंतिम कमांड पर्याप्त स्पेस खाली कर सकता है, लेकिन सावधानी से उपयोग करें, क्योंकि यह सभी इमेज हटा देगा जिन्हें चल रहे या रुके हुए कंटेनरों द्वारा संदर्भित नहीं किया गया है।
>Docker Prune कमांड आखिर है क्या? हमने इस पर पूरा लेख समर्पित किया है — उदाहरणों से भरपूर।
अब जब आप Docker इमेज हटाना जान गए हैं, तो चलिए कुछ आम त्रुटियों और उनसे निपटने के तरीकों पर नज़र डालते हैं।
Docker इमेज हटाते समय त्रुटियों से निपटना
सॉफ्टवेयर विकास की हर चीज़ की तरह, Docker इमेज हटाते वक्त भी कभी-कभी त्रुटियाँ आएँगी।
ज्यादातर त्रुटियाँ उचित कारणों से होती हैं — Docker के सेफगार्ड इसीलिए बनाए गए हैं ताकि आप गलती से किसी महत्वपूर्ण चीज़ को न तोड़ दें। चलिए इन आम त्रुटियों और उनके समाधान देखते हैं।
त्रुटि: इमेज किसी कंटेनर द्वारा उपयोग में है
Docker इमेज हटाते समय आपको मिलने वाली सबसे आम त्रुटि कुछ ऐसी दिखती है:
Error response from daemon: conflict: unable to delete 64ba095c0f0e (cannot be forced) - image is being used by running container 0284660ca006
ऐसा इसलिए होता है क्योंकि Docker की आर्किटेक्चर में कंटेनर और इमेज के बीच कड़ी डिपेंडेंसी होती है। कंटेनर मूल रूप से एक इमेज का रनिंग इंस्टेंस है, जिसके ऊपर उसकी अपनी राइटेबल लेयर होती है।
Docker हटाने से क्यों रोकता है? बात सरल है — अगर आपने किसी इमेज को तब हटा दिया जब उस पर आधारित कंटेनर चल रहा था, तो वह कंटेनर तुरंत क्रैश हो जाएगा। रुके हुए कंटेनर भी अपनी पैरेंट इमेज के संदर्भ बनाए रखते हैं क्योंकि उन्हें बाद में फिर शुरू किया जा सकता है।
ऐसी इमेज हटाने के लिए, पहले उस इमेज का उपयोग करने वाले सभी कंटेनरों (रुके हुए सहित) की सूची बनाएँ:
docker ps -a --filter ancestor=64ba095c0f0e

छवि 10 - इमेज का उपयोग करने वाले सभी कंटेनर
फिर आप सभी कंटेनरों को रोक सकते हैं:
docker stop 0284660ca006

छवि 11 - कंटेनरों को रोकना
अगले चरण में, आप रुके हुए कंटेनरों को हटा सकते हैं:
docker rm 0284660ca006

छवि 12 - कंटेनर हटाना
और अंत में, इमेज हटाने के लिए मशहूर rmi कमांड चलाएँ:
docker rmi 64ba095c0f0e

छवि 13 - Docker इमेज हटाना
या, यदि आप एक ही शेल कमांड पसंद करते हैं, तो यह उपयोग करें:
docker ps -a --filter ancestor=090040f97aa1 -q | xargs docker rm -f && docker rmi 090040f97aa1

छवि 14 - सब कुछ एक ही शेल कमांड में करना
काफी आसान है, है ना?
फोर्स करके Docker इमेज हटाना
यदि आप पूरी तरह आश्वस्त हैं कि डिपेंडेंसी की परवाह किए बिना इमेज हटानी है, तो Docker -f या --force फ्लैग देता है:
docker rmi -f 64ba095c0f0e

छवि 15 - Docker इमेज फोर्स-डिलीट करना
फोर्स विकल्प Docker को बताता है कि इमेज को हटा दें, भले ही उस पर कंटेनर या अन्य इमेज संदर्भित हों।
हालाँकि, यह चल रहे कंटेनरों द्वारा संदर्भित इमेज नहीं हटाएगा।
फोर्स रिमूवल आपका अंतिम विकल्प होना चाहिए — जैसे खुद Docker को डीबग करते समय, या जब आप पूरी तरह आश्वस्त हों कि डिपेंडेंसी निर्भयता से तोड़ी जा सकती हैं। प्रोडक्शन वातावरण में, यह लगभग कभी सही विकल्प नहीं होता।
याद रखें, Docker के डिपेंडेंसी नियंत्रण किसी कारण से मौजूद हैं। इनके साथ काम करने से आपका Docker अनुभव अधिक स्थिर और पूर्वानुमेय रहेगा।
Docker इमेज प्रबंधन के सर्वोत्तम तरीके
Docker इमेज प्रबंधन एक बार का काम नहीं — यह सतत जिम्मेदारी है।
अच्छी आदतें बनाना और सर्वोत्तम प्रथाओं का पालन करना आपको उस आपातकालीन सफाई से बचाएगा जब अचानक डिस्क स्पेस शून्य पर पहुँचे। इस खंड में, मैं आपको कुछ रणनीतियाँ बताऊंगा जो एक साफ Docker वातावरण बनाए रखने में मदद करेंगी।
>Docker सीखने के लिए संपूर्ण गाइड की तलाश है? हमारा डेटा प्रोफेशनल्स के लिए गाइड एक अच्छा शुरुआती बिंदु है।
नियमित सफाई
जैसे आप बर्तनों को हफ्तों तक सिंक में नहीं जमने देते, वैसे ही अनयूज़्ड Docker इमेज को भी सिस्टम पर अनिश्चित समय तक इकट्ठा नहीं होने देना चाहिए।
नियमित मेंटेनेंस शेड्यूल इमेज ब्लोट से बचने का सबसे सरल तरीका है। Docker का उपयोग आप कितनी सक्रियता से करते हैं, उसके अनुसार यह साप्ताहिक, मासिक, या तिमाही हो सकता है।
इन सफाई सत्रों के दौरान, आपको यह करना चाहिए:
docker imagesसे इमेज की समीक्षा करें और हटाने के उम्मीदवार पहचानें।- ऐसी इमेज जाँचें जिन्हें आप पहचानते नहीं या हाल में उपयोग नहीं किया।
- एक ही एप्लिकेशन के डुप्लिकेट वर्ज़न खोजें।
- पहले बताए कमांडों का उपयोग करके अनावश्यक इमेज हटाएँ।
कई डेवलपमेंट टीमें इमेज सफाई को अपने CI/CD पाइपलाइनों में भी शामिल करती हैं। उदाहरण के लिए, आप Jenkins या GitHub Actions को कॉन्फ़िगर कर सकते हैं ताकि वे स्वचालित रूप से एक निश्चित आयु से पुरानी बिल्ड इमेज साफ कर दें।
यह कमांड केवल वे इमेज दिखाएगा जो 30 दिनों से पुरानी हैं:
docker images --format "{{.ID}}\t{{.CreatedAt}}" | awk '$2 < "'$(date -d '30 days ago' +'%Y-%m-%d')'"' | cut -f1
Docker इमेज प्रूनिंग का उपयोग
Docker बिल्ट-इन प्रूनिंग कमांड देता है जो काफी मैनुअल सफाई को ऑटोमेट कर सकते हैं।
docker system prune कमांड एक साथ सभी रुके हुए कंटेनर, डैंगलिंग इमेज, और बिना उपयोग वाले नेटवर्क हटाता है:
docker system prune
और भी आक्रामक सफाई के लिए, जो बिना उपयोग वाली इमेज भी हटाती है:
docker system prune -a
आप बिल्ड कैश से भी स्पेस वापस पा सकते हैं:
docker builder prune
ये कमांड स्क्रिप्टिंग के लिए बेहतरीन हैं। यहाँ एक साधारण क्लीनअप स्क्रिप्ट का उदाहरण है जिसे आप समय-समय पर चला सकते हैं:
#!/bin/bash
# सभी कंटेनर रोकें
docker stop $(docker ps -q)
# सभी रुके हुए कंटेनर हटाएँ
docker container prune -f
# सभी बिना उपयोग वाली इमेज हटाएँ
docker image prune -a -f
# शेष डिस्क उपयोग दिखाएँ
docker system df

छवि 16 - Docker क्लीनअप के लिए स्वचालित स्क्रिप्ट
बस यह याद रखें कि ऑटोमेटेड स्क्रिप्ट में -f फ्लैग सावधानी से उपयोग करें, क्योंकि यह कन्फर्मेशन प्रॉम्प्ट को बायपास करता है।
इमेज वर्ज़न को सुव्यवस्थित रखना
अच्छी टैगिंग रणनीति अनावश्यक Docker इमेज के जमाव को कम करने में मदद करेगी।
हर समय latest टैग का उपयोग करने के बजाय (जो समय के साथ अस्पष्ट हो सकता है), इन तरीकों पर विचार करें:
- सेमांटिक वर्ज़निंग अपनाएँ:
myapp:1.0.0
myapp:1.0.1
myapp:1.1.0
- टैग में बिल्ड जानकारी शामिल करें:
myapp:build-2025-04-06
myapp:commit-a7f3d9e
- एन्वायरनमेंट या उद्देश्य का संकेत जोड़ें:
myapp:1.0.0-dev
myapp:1.0.0-test
myapp:1.0.0-prod
बड़ी टीमों के लिए, ऐसी Docker इमेज रजिस्ट्री नीति लागू करने पर विचार करें जो एक निश्चित समय के बाद पुरानी इमेज को स्वतः गार्बेज-कलेक्ट कर दे। Docker Hub और Harbor जैसी निजी रजिस्ट्री दोनों इमेज लाइफसाइकल प्रबंधन की सुविधाएँ प्रदान करती हैं।
इन सर्वोत्तम प्रथाओं — नियमित सफाई, स्वचालित प्रूनिंग, और सुव्यवस्थित टैगिंग — को मिलाकर, आप एक कहीं अधिक स्वस्थ Docker वातावरण बनाए रखेंगे और "no space left on device" जैसी डरावनी त्रुटियों से बचेंगे।
Docker इमेज हटाने का सार
यदि आप कंटेनरों के साथ काम करने वाले डेवलपर हैं, तो सही Docker इमेज प्रबंधन एक अनिवार्य कौशल है।
याद रखें कि Docker की ताकत उसके द्वारा एप्लिकेशन को अलग-थलग और कुशलतापूर्वक पैकेज करने की क्षमता से आती है, लेकिन उचित मेंटेनेंस के बिना यही लाभ जल्द ही नुकसान बन सकता है।
आपने सीखा कि समय के साथ Docker इमेज कैसे समस्या बन सकती हैं — मूल्यवान डिस्क स्पेस खाती हैं और आपके डेवलपमेंट वातावरण में अव्यवस्था पैदा करती हैं। आपने इमेज की जाँच और हटाने के विभिन्न कमांड देखे, docker rmi से लक्षित हटाने से लेकर प्रूनिंग कमांड के साथ बल्क क्लीनअप तक। आपने हटाने की प्रक्रिया में आम त्रुटियाँ भी देखीं और उन्हें दूर करना सीखा।
यदि आप Docker और कंटेनरीकरण के बारे में अधिक सीखना चाहते हैं, तो ये कोर्स आपके अगले पड़ाव होने चाहिए:
FAQs
क्या Docker इमेज डिलीट करने के बाद उसे वापस पाया जा सकता है?
नहीं, एक बार जब आप docker rmi से Docker इमेज डिलीट कर देते हैं, तो उसे रिकवर नहीं किया जा सकता जब तक कि आपके पास बैकअप न हो या आप उसे किसी रजिस्ट्री से दोबारा पुल न कर सकें। हमेशा सुनिश्चित करें कि आप सही इमेज हटा रहे हैं, खासकर प्रोडक्शन वातावरण में। जिन इमेज को आपने लोकली बनाया है, उन्हें आपको Dockerfile से दोबारा बनाना पड़ सकता है।
डैंगलिंग Docker इमेज क्या होती हैं, और उन्हें कैसे हटाएँ?
डैंगलिंग इमेज वे लेयरें होती हैं जो किसी भी टैग की गई इमेज से संबंधित नहीं होतीं, और अक्सर तब बनती हैं जब आप इमेज को कई बार रीबिल्ड करते हैं। उन्हें docker images -f "dangling=true" से पहचानें और docker image prune से एक साथ हटा दें।
मैं Docker से स्पेस जल्दी कैसे खाली कर सकता/सकती हूँ?
स्पेस जल्दी रिक्लेम करने का सबसे तेज़ तरीका docker system prune -a है, जो सभी रुके हुए कंटेनर, बिना उपयोग वाले नेटवर्क, डैंगलिंग इमेज, और बिना उपयोग वाली इमेज हटा देता है। सावधान रहें, क्योंकि यह उन सभी इमेज को हटाता है जिन्हें कोई कंटेनर उपयोग में नहीं ले रहा।
मुझे Docker इमेज कितनी बार साफ करनी चाहिए?
आवृत्ति इस पर निर्भर करती है कि आप Docker का कितना सक्रिय उपयोग करते हैं। जिन डेवलपमेंट वातावरणों में बार-बार इमेज बनती हैं, वहाँ साप्ताहिक सफाई की सिफारिश होती है। कम सक्रिय सिस्टमों के लिए मासिक या तिमाही मेंटेनेंस पर्याप्त है। स्थिरता के लिए स्वचालित क्लीनअप स्क्रिप्ट सेटअप करने पर विचार करें।
Docker इमेज को हटाने और प्रून करने में क्या अंतर है?
रिमूवल में आप विशिष्ट इमेज को हटाते हैं जिन्हें आपने चुना है, जबकि प्रूनिंग परिभाषित मानदंडों के आधार पर सभी बिना उपयोग या डैंगलिंग इमेज को स्वतः साफ करती है।

क्या आप Docker का उपयोग करते हैं और अक्सर डिस्क स्पेस की कमी महसूस करते हैं? आप अकेले नहीं हैं।
Docker इमेज Docker कंटेनरों की बुनियाद हैं, लेकिन वे तेजी से बढ़ती हैं और डिस्क स्पेस खा जाती हैं। इन इमेज का आकार कुछ मेगाबाइट से लेकर कई गीगाबाइट तक होता है, इसलिए बेहतर सिस्टम प्रदर्शन के लिए नियमित सफाई ज़रूरी है।
अच्छी खबर यह है कि Docker कुछ कमांड देता है जिनसे आप अनावश्यक इमेज हटाकर स्पेस वापस पा सकते हैं। इन कमांडों और इनके उपयोग का समय समझ लेने से उम्मीद है कि आपके सभी आउट-ऑफ-स्टोरेज चेतावनी संदेश खत्म हो जाएंगे।
इस ट्यूटोरियल में, मैं आपको Docker इमेज हटाने के अलग-अलग तरीके दिखाऊंगा, हटाने की प्रक्रिया में आने वाली आम त्रुटियों से निपटना सिखाऊंगा, और एक साफ Docker वातावरण बनाए रखने की सर्वोत्तम प्रथाएँ साझा करूंगा।
>Docker में बिल्कुल नए हैं? कंटेनरों पर यह व्यावहारिक गाइड आपको तुरंत शुरू करा देगा।
Docker इमेज क्या है?
Docker इमेज एक हल्का, स्टैंडअलोन, और निष्पादन योग्य सॉफ्टवेयर पैकेज है जिसमें किसी एप्लिकेशन को चलाने के लिए आवश्यक हर चीज़ होती है — कोड, रनटाइम, लाइब्रेरी, एन्वायरनमेंट वेरिएबल, और कॉन्फ़िग फाइलें।
इसे कंटेनर बनाने के लिए इस्तेमाल होने वाले स्नैपशॉट या टेम्पलेट के रूप में समझें।
>Docker का उपयोग केवल सॉफ्टवेयर इंजीनियर ही नहीं करते - डेटा साइंटिस्ट भी इसे पसंद करते हैं!
Docker इमेज लेयरों में बनी होती हैं, जिनमें से हर लेयर फाइल सिस्टम में हुए बदलावों का एक सेट दर्शाती है। जब आप Docker Hub से कोई इमेज पुल करते हैं या किसी
Dockerfileसे इमेज बनाते हैं, तो आप वास्तव में इन लेयरों का एक स्टैक डाउनलोड या तैयार कर रहे होते हैं जो साथ मिलकर काम करती हैं। ये लेयर कैश होती हैं, जिससे इमेज बनाना और साझा करना अधिक कुशल हो जाता है, लेकिन इसका मतलब यह भी है कि वे आपके मशीन पर स्टोरेज घेरती हैं।जब आप सक्रिय रूप से एप्लिकेशन विकसित कर रहे होते हैं, तब इमेज खास तौर पर समस्या बन जाती हैं। आप अक्सर छोटी-छोटी बदलावों के साथ इमेज बार-बार रीबिल्ड करेंगे, परीक्षण के लिए अलग-अलग संस्करण बनाएंगे, और ऐसी डिपेंडेंसी पुल करेंगे जो शायद कभी ऑटोमेटिकली साफ न हों।
देखते ही देखते, आपके पास दर्जनों या सैकड़ों इमेज हो सकती हैं जो कीमती — और सीमित — SSD स्पेस के गीगाबाइट्स निगल रही होती हैं।
>यदि आप डेटा साइंस और मशीन लर्निंग में रुचि रखते हैं, तो इन 12 Docker इमेज के बारे में ज़रूर जानें।
Docker इमेज क्यों हटाएँ?
सरल शब्दों में, Docker इमेज अक्सर बहुत अधिक स्पेस लेती हैं, और आपके पास देने के लिए डिस्क स्पेस सीमित ही होता है।
अनावश्यक Docker इमेज हटाने के कई महत्वपूर्ण उद्देश्य हैं:
latestटैग किसी अप्रत्याशित चीज़ की ओर इशारा कर रहा था।docker imagesचलाते हैं और स्क्रीन पर रेपोजिटरी, टैग, और ID से भरी सूची देखते हैं, तो विशेष इमेज ढूंढना समय लेने वाला काम बन जाता है। नियमित सफाई आपके वर्किंग वातावरण को संभालने योग्य और कमांड आउटपुट को पठनीय रखती है। यह जीवन-गुणवत्ता में छोटा-सा सुधार है जो समय के साथ बड़ा फर्क लाता है।अब आगे, मैं आपको Docker इमेज हटाने के कुछ तरीके दिखाऊंगा।