मुख्य सामग्री पर जाएं

सभी Docker कंटेनर रोकें: चरण-दर-चरण मार्गदर्शिका

सरल कमांड का उपयोग करके सभी चल रहे Docker कंटेनरों को रोकना सीखें। इससे आप सिस्टम संसाधनों का प्रबंधन कर सकेंगे और अपने Docker वातावरण को सुव्यवस्थित कर सकेंगे।
अपडेट किया गया 25 सित॰ 2026  · 5 मि॰ पढ़ें

AI के साथ खोजें

ChatGPTClaudePerplexity

कंटेनरों को एक-एक करके रोकना आपके डेवलपमेंट वर्कफ़्लो को धीमा कर सकता है और माइक्रोसर्विसेज़ या मल्टी-कंटेनर एप्लिकेशन संभालते समय त्रुटियों का कारण बन सकता है। 

इस गाइड में, मैं कई तरीके बताऊँगा जिनसे आप सभी चल रहे कंटेनरों को समाप्त कर सकते हैं।

इस ट्यूटोरियल के अंत तक, आप सक्षम होंगे:  

  • समझना कि Docker सिग्नल और ग्रेस पीरियड को कैसे संभालता है
  • सरल CLI तकनीकों और फ़िल्टर का उपयोग करके सभी कंटेनर रोकना
  • सुगम वर्कफ़्लो के लिए Docker Compose और कस्टम उपनामों का लाभ उठाना 

Docker कंटेनर टर्मिनेशन को समझना

कंटेनरों को बल्क में रोकने से पहले, यह समझना उपयोगी है कि Docker पर्दे के पीछे शटडाउन को कैसे ऑर्केस्ट्रेट करता है।

सिग्नल-आधारित प्रोसेस मैनेजमेंट

Docker ज़बरदस्ती टर्मिनेशन से पहले ग्रेसफुल शटडाउन का अनुरोध करने के लिए Unix सिग्नल का उपयोग करता है। docker stop कमांड का डिफ़ॉल्ट व्यवहार है: 

  1. SIGTERM कंटेनर की मुख्य प्रक्रिया को भेजना।  
  2. अधिकतम 10 सेकंड तक प्रतीक्षा करना (जिसे -t/--time से कॉन्फ़िगर किया जा सकता है)।  
  3. यदि प्रक्रिया बंद नहीं हुई है, तो SIGKILL भेजना।
  • SIGTERM: प्रक्रिया से विनम्रतापूर्वक सफाई कर बाहर निकलने का अनुरोध करता है।  
  • ग्रेस पीरियड: ऐप्लिकेशनों को लॉग फ्लश करने, कनेक्शन बंद करने या स्टेट सहेजने का समय देता है।  
  • SIGKILL: किसी भी अनुत्तरदायी प्रक्रिया को तुरंत समाप्त कर देता है।

Docker stop सिग्नल अनुक्रम दर्शाने वाली टाइमलाइन: SIGTERM, प्रतीक्षा, फिर SIGKILL।

कमांड-लाइन इंटरफ़ेस (CLI) के यांत्रिकी

डिफ़ॉल्ट रूप से, docker stop एक समय में एक कंटेनर संभालता है। आप शेल फीचर्स का उपयोग करके इसे कई कंटेनर रोकने तक बढ़ा सकते हैं।

# Stop a single container named my_container
docker stop my_container

यह my_container को SIGTERM भेजता है और आवश्यकता होने पर SIGKILL जारी करने से पहले डिफ़ॉल्ट 10 सेकंड प्रतीक्षा करता है।

# Stop all running containers at once
docker stop $(docker ps -q)

यहाँ, docker ps -q सभी चल रहे कंटेनरों के ID सूचीबद्ध करता है; वे ID docker stop को पास की जाती हैं, जो कंटेनरों को क्रमवार बंद करता है।

सभी कंटेनर बंद करने के लिए docker ps -q को docker stop में पाइप करते हुए टर्मिनल सत्र।

टर्मिनल का स्क्रीनशॉट जिसमें docker ps -q का आउटपुट docker stop में पाइप किया गया है

इन अवधारणाओं को और विस्तार से समझने के लिए, Containerization and Virtualization Concepts देखें।

docker stop और docker kill की तुलना

ग्रेसफुल बनाम फोर्सफुल टर्मिनेशन के बीच चयन करने से आप अनचाहे परिणामों से बचते हैं।

ग्रेसफुल बनाम तुरंत टर्मिनेशन

कमांड

सिग्नल

व्यवहार

उपयोग परिदृश्य

docker stop

SIGTERM → टाइमआउट के बाद SIGKILL

सफाई के समय के साथ ग्रेसफुल शटडाउन

रूटीन मेंटेनेंस या अपडेट्स

docker kill

SIGKILL

तुरंत टर्मिनेशन  

हैंग हुए कंटेनरों का आपातकालीन समाधान

सिग्नल कस्टमाइज़ेशन

दोनों कमांड डिफ़ॉल्ट को ओवरराइड करने के लिए --signal फ़्लैग सपोर्ट करते हैं:

# Send SIGINT instead of SIGTERM
docker stop --signal=SIGINT my_container

ऊपर दिया गया कमांड प्रक्रियाओं को कस्टम क्लीनअप के लिए SIGINT ट्रैप करने देता है।

# Kill all containers with SIGUSR1
docker kill --signal=SIGUSR1 $(docker ps -q)

जैसा देखा, जब आपका एप्लिकेशन विशिष्ट शटडाउन हुक लागू करता है, तो आप कस्टम सिग्नल का उपयोग कर सकते हैं।

एडवांस्ड कंटेनर स्टॉपिंग स्ट्रैटेजीज़

फ़िल्टरिंग और ऑटोमेटिंग के जरिए कंटेनर रोकना विशेष रूप से बड़े परिवेशों में अधिक सटीक DevOps वर्कफ़्लो सक्षम करता है।  

मूल बातें समझने के बाद, आप यह फाइन-ट्यून कर सकते हैं कि किन कंटेनरों को रोकना है और प्रक्रिया को कैसे स्वचालित करना है।

फ़िल्टर्ड कंटेनर टर्मिनेशन

फ़िल्टर से आप इमेज नाम, स्टेटस, या लेबल जैसी विशेषताओं के आधार पर कंटेनरों को लक्षित कर सकते हैं:

# Stop containers running the my_image:latest image
docker stop $(docker ps --filter "ancestor=my_image:latest" -q)

ऊपर दिया गया कमांड केवल my_image:latest पर आधारित कंटेनरों को रोकता है, जो मल्टी-सर्विस प्रोजेक्ट्स में लक्षित नियंत्रण देता है।

उपयोग परिदृश्य:  

  • इमेज टैग द्वारा टेस्ट कंटेनर रोकें (--filter "ancestor=test:latest")  
  • लेबल द्वारा कंटेनर रोकें (--filter "label=env=dev")

कंटेनर रोकने से पहले ancestor इमेज नाम द्वारा docker ps आउटपुट फ़िल्टर करना।

docker ps --filter के उपयोग का टर्मिनल स्क्रीनशॉट

Docker Compose के साथ स्वचालित क्लीनअप

यदि आपकी सेवाएँ docker-compose.yml फ़ाइल में परिभाषित हैं, तो एक ही कमांड सभी संबंधित कंटेनरों को रोक देता है:

docker-compose stop

यह एक स्वच्छ शटडाउन के लिए आपकी सर्विस डिपेंडेंसी और कॉन्फ़िगर किए गए टाइमआउट का सम्मान करता है।

और उन्नत तकनीकों के लिए, आप Intermediate Docker कोर्स पर विचार कर सकते हैं।

उपनाम-आधारित वर्कफ़्लो ऑप्टिमाइज़ेशन

दोहराए जाने वाले कार्यों के लिए, शेल उपनाम टाइपिंग और कॉन्टेक्स्ट स्विचिंग कम करते हैं:

# Add this to ~/.bashrc or ~/.zshrc
alias ds='docker stop $(docker ps -q)'

शेल को रीलोड करने के बाद, ds चलाने से एक ही कीस्ट्रोक में सभी कंटेनर रुक जाते हैं—तेज़ क्लीनअप के लिए आदर्श।

Ubuntu WSL में सभी चल रहे Docker कंटेनरों को रोकने के लिए कस्टम 'ds' उपनाम के सफल उपयोग को दिखाता टर्मिनल।

Ubuntu WSL में सभी चल रहे कंटेनर रोकने के लिए 'ds' उपनाम का उपयोग

ऑपरेशनल सर्वोत्तम प्रथाएँ

अपने वातावरण को स्थिर और उच्च-प्रदर्शन बनाए रखने के लिए सुरक्षित शटडाउन रूटीन और नियमित क्लीनअप लागू करें।

  • अपनी एप्लिकेशन कोड में सिग्नल हैंडलर लागू करें ताकि कनेक्शन बंद हों और लॉग फ्लश हों।  
  • docker kill को आपातकालीन हस्तक्षेप के लिए सुरक्षित रखें; डेटा असंगतियों से बचें।  
  • अपने एप्लिकेशन की क्लीनअप ज़रूरतों के आधार पर ग्रेस पीरियड (-t/--time) समायोजित करें।  
  • Docker Prune: A Complete Guide with Hands-On Examples में बताए अनुसार docker system prune जैसे कमांड के साथ पोस्ट-शटडाउन क्लीनअप ऑटोमेट करें।
  • टर्मिनेशन समस्याओं का निदान करने के लिए शटडाउन इवेंट (टाइमस्टैम्प और एग्जिट कोड) लॉग करें।

सामान्य समस्याओं का निवारण

सीधे-सादे कमांड भी अटक सकते हैं—इन्हें इस तरह संबोधित करें।

ज़ॉम्बी प्रक्रियाएँ और अनाथ वॉल्यूम

ज़बरदस्ती टर्मिनेशन से बासी प्रक्रियाएँ या अनाथ वॉल्यूम पीछे छूट सकते हैं, जो होस्ट संसाधन और डिस्क स्पेस खा सकते हैं। क्लीनअप के लिए:

# Remove dangling volumes
docker volume prune

यह उन सभी वॉल्यूम को हटा देता है जिनका किसी कंटेनर से संदर्भ नहीं है।

शेष Docker डेमन प्रक्रियाएँ जाँचें:

ps aux | grep dockerd

यदि कोई आवारा dockerd चाइल्ड प्रक्रिया बनी रहती है, तो उन्हें मैन्युअली समाप्त करें।

वास्तविक उदाहरण: एक प्रोजेक्ट में, जब एक माइग्रेशन अटका तो मैंने एक डेटाबेस कंटेनर पर docker kill का उपयोग किया। अचानक किल ने DB को ट्रांज़ैक्शन लॉग फ्लश करने से रोक दिया, जिससे InnoDB टेबल करप्ट हो गए। हमें बैकअप से रिस्टोर करना और बिनलॉग रीप्ले करने पड़े, जिससे 30 मिनट से अधिक का डाउनटाइम हुआ। इससे बचने के लिए, विस्तारित टाइमआउट के साथ docker stop को प्राथमिकता दें या अपनी एप्लिकेशन में उचित SIGTERM हैंडलर जोड़ें।

Permission denied त्रुटियाँ

उचित विशेषाधिकारों के बिना Docker कमांड चलाने से अक्सर त्रुटियाँ आती हैं:

  • कमांड के आगे sudo जोड़ें या docker समूह के उपयोगकर्ता के रूप में चलाएँ।  
  • अपने उपयोगकर्ता को docker समूह में जोड़ें और दोबारा लॉग-इन करें:
sudo usermod -aG docker $USER

लॉग आउट और फिर लॉग इन करने के बाद, आप बिना sudo के Docker कमांड चला सकते हैं। CI वातावरण में, पाइपलाइन विफलताओं से बचने के लिए सुनिश्चित करें कि रनर उपयोगकर्ता Docker समूह का सदस्य है।

Windows-विशिष्ट बातें

Windows PowerShell पर, सब-कमांड को कोष्ठक में रखें और Administrator के रूप में चलाएँ:

docker stop (docker ps -q)

उच्चाधिकारों के साथ PowerShell लॉन्च करने से फ़ायरवॉल या एक्सेस-कंट्रोल समस्याएँ रुकती हैं। यदि आपको TLS हैंडशेक त्रुटियाँ दिखें, तो सत्यापित करें कि Docker Desktop के डेमन कॉन्फ़िगरेशन आपके PowerShell वातावरण से मेल खाते हैं।

निष्कर्ष

अपने सभी Docker कंटेनर कुशलता से रोकना समय बचाता है, संसाधन बचाता है, और आपके डेवलपमेंट वर्कफ़्लो में मानवीय त्रुटि को कम करता है। Docker के सिग्नल हैंडलिंग को समझकर, CLI फ़िल्टर का लाभ उठाकर, Docker Compose का उपयोग करके, और सरल उपनाम बनाकर आप एक स्वच्छ और पूर्वानुमानित वातावरण बनाए रख सकते हैं। 

अपनी कंटेनराइज़ेशन विशेषज्ञता को गहरा करने के लिए Containerization and Virtualization with Docker and Kubernetes ट्रैक या Intermediate Docker कोर्स देखें।

हैप्पी कंटेनराइज़िंग—और स्वच्छ, कुशल Docker वर्कफ़्लो के नाम!

FAQs

docker stop किस एग्जिट कोड को लौटाता है?

सफल होने पर, docker stop 0 लौटाता है। गैर-शून्य एग्जिट कोड इंगित करता है कि एक या अधिक कंटेनर रुकने में विफल रहे।

क्या मैं कमांड चलाने से पहले देख सकता हूँ कि कौन-से कंटेनर रुकेंगे?

हाँ—कमांड चलाने से पहले चल रहे कंटेनरों की सूची और ID या नाम सत्यापित करने के लिए docker ps या docker ps -q चलाएँ docker stop।

रिस्टार्ट नीतियाँ रुके हुए कंटेनरों को कैसे प्रभावित करती हैं?

always जैसी रिस्टार्ट नीति वाले कंटेनर रुकने के बाद स्वचालित रूप से दोबारा शुरू हो जाएँगे। यदि आप चाहते हैं कि वे रुके रहें, तो docker update --restart=no <container> से नीति हटाएँ या संशोधित करें।

क्या नेटवर्क या वॉल्यूम के आधार पर कंटेनर रोके जा सकते हैं?

हालाँकि Docker सीधे docker stop पर नेटवर्क या वॉल्यूम द्वारा फ़िल्टर नहीं करता, आप docker ps --filter "network=<name>" या docker ps --filter "volume=<name>" को कमांड सब्स्टिट्यूशन के साथ जोड़ सकते हैं।

मैं docker stop को CI/CD पाइपलाइन में कैसे एकीकृत कर सकता/सकती हूँ?

अपने बिल्ड स्क्रिप्ट या CI जॉब में stop कमांड शामिल करें—लक्षित शटडाउन के लिए --signal और फ़िल्टर जैसे फ़्लैग का उपयोग करें, फिर उसी पाइपलाइन में क्लीनअप कमांड (docker system prune) चलाएँ।

क्या मैं बाद में सभी रुके हुए कंटेनरों को फिर से शुरू कर सकता/सकती हूँ?

हाँ, docker start $(docker ps -a -q) का उपयोग करके सभी कंटेनरों को, जिनमें पहले से रुके हुए भी शामिल हैं, फिर से शुरू किया जा सकता है।

क्या सभी कंटेनर रोकने से वे हट जाते हैं?

नहीं, कंटेनर रोकने से वे हटते नहीं हैं। वे तब तक आपकी प्रणाली पर बने रहते हैं जब तक आप उन्हें docker rm से हटाएँ नहीं।

मैं रोज़ाना कंटेनरों को स्वतः रोकना कैसे ऑटोमेट कर सकता/सकती हूँ?

आप क्रॉन जॉब के साथ docker stop $(docker ps -q) कमांड चलाकर दैनिक स्वत: रोक शेड्यूल कर सकते हैं।

क्या docker stop वॉल्यूम या नेटवर्क को प्रभावित करता है?

नहीं, कंटेनर रोकने से जुड़े वॉल्यूम या नेटवर्क पर प्रभाव नहीं पड़ता—वे जस के तस रहते हैं।

क्या मैं कुछ कंटेनरों को रोकने से बाहर रख सकता/सकती हूँ?

आप docker ps के साथ फ़िल्टर का उपयोग करके या कमांड से विशिष्ट कंटेनर ID को बाहर रखकर चयनित रूप से कंटेनर रोक सकते हैं।

CLI कमांड के अलावा कौन-से टूल कंटेनरों के प्रबंधन में मदद कर सकते हैं?

Portainer या Docker Desktop जैसे टूल GUI-आधारित प्रबंधन प्रदान करते हैं, जिससे शुरुआती लोगों के लिए कंटेनर कंट्रोल आसान हो जाता है।


Khalid Abdelaty's photo
Author
Khalid Abdelaty
LinkedIn

मैं एक डेटा इंजीनियर और कम्युनिटी बिल्डर हूँ, जो डेटा पाइपलाइनों, क्लाउड, और AI टूलिंग के साथ काम करता/करती हूँ, साथ ही DataCamp और उभरते डेवलपर्स के लिए व्यावहारिक, असरदार ट्यूटोरियल लिखता/लिखती हूँ।

विषय
Docker

इन कोर्स के साथ Docker के बारे में और जानें!

कोर्स

Docker परिचय

4 घंटा
52.3K
Docker का परिचय पाएं और डेटा प्रोफेशनल के टूलकिट में इसकी अहमियत जानें. Docker कंटेनर, इमेज और अन्य के बारे में जानें।
विवरण देखेंRight Arrow
पाठ्यक्रम शुरू करें

लर्निंग पाथ

कंटेनरीकरण और वर्चुअलाइजेशन Docker और Kubernetes के साथ

13 घंटा
Docker और Kubernetes की शक्ति सीखें, यह इंटरैक्टिव ट्रैक आपको आधुनिक परिवेशों में एप्लिकेशन बनाने और तैनात करने में सक्षम बनाएगा।
और देखेंRight Arrow