डॉकटर कंटेनर को रोकने और हटाने का एकल आदेश


138

क्या कोई कमांड है जो कमांड docker stopऔर docker rmकमांड को एक साथ जोड़ सकती है ? हर बार जब मैं एक चालू कंटेनर को हटाना चाहता हूं, तो मुझे क्रमिक रूप से 2 कमांड निष्पादित करने की आवश्यकता है, मुझे आश्चर्य है कि अगर कोई संयुक्त कमांड है तो इस प्रक्रिया को सरल बना सकते हैं।

docker stop CONTAINER_ID
docker rm CONTATINER_ID

2
यह कंटेनर पर निर्भर करता है: ctl.io/developers/blog/post/…
VonC

जवाबों:


236

आप उपयोग कर सकते हैं :

docker rm -f CONTAINER_ID

यह कंटेनर को हटा देगा भले ही वह अभी भी चल रहा हो।

https://docs.docker.com/engine/reference/commandline/rm/

आप अपने कंटेनरों को --rmविकल्प के साथ भी चला सकते हैं , यह बंद होने पर स्वचालित रूप से हटा दिया जाएगा।

https://docs.docker.com/engine/reference/run/#clean-up-rm

संपादित करें:rm -f अपने डेटा के लिए खतरनाक हो सकता है और सबसे अच्छा परीक्षण या विकास कंटेनरों के लिए अनुकूल है। @ इस विषय पर बर्नार्ड की टिप्पणी पढ़ने योग्य है।


15
सावधान रहे। docker rm -fकंटेनर को SIGKILL सिग्नल भेजता है। यह कंटेनर को अपनी स्थिति को सही ढंग से सहेजने का समय नहीं दे सकता है। नॉन स्टेटलेस कंटेनरों के लिए वास्तव में docker stopइसके बाद उपयोग करना चाहिए docker rm। यह एक SIGTERM सिग्नल भेजता है जो डिफ़ॉल्ट रूप से कंटेनरों को अधिकतम 10 सेकंड देता है ताकि डॉकटर डेमॉन अंततः SIGKILL भेजता है।
बर्नार्ड

3
मुझे लगता है - लघु जीवित कंटेनरों के लिए सबसे उपयुक्त विकल्प।
प्रशांत सिन्हा

30
docker stop CONTAINER_ID | xargs docker rm

चतुर विचार। मुझे यह पसंद है क्योंकि इसका उपयोग अन्य आदेशों के लिए भी किया जा सकता है, जहां आप दो आदेशों पर एक तर्क को दोहराए बिना या एक चर का उपयोग करके पास करना चाहते हैं।
सिंह

16

आप एक एकल कमांड के साथ कंटेनर को रोक और हटा सकते हैं $_जो आपको अंतिम गूंज देता है

docker stop CONTAINER && docker rm $_

7

मेरे मामले में सभी चल रहे कंटेनरों को हटाने के लिए, मैंने उपयोग किया

docker rm -f $(docker ps -a -q); docker rmi $(docker images -q)



2

यह बंद कंटेनर सहित सभी छवियों को रोक देगा और हटा देगा जैसा कि हम -f का उपयोग कर रहे हैं

docker rmi -f $(docker images -a -q)

1

जिन कंटेनरों को आप निकालना चाहते हैं उनके नाम या आईडी का पता लगाने के लिए -a फ्लैग के साथ docker ps कमांड का उपयोग करें

docker ps -a

निकालने के लिए: $ docker rm ID_or_Name ID_or_Name

बाहर निकलने पर एक कंटेनर निकालें:

यदि आप जानते हैं कि जब आप एक कंटेनर बना रहे हैं, जिसे आप एक बार पूरा करने के बाद उसे अपने पास नहीं रखना चाहते हैं, तो जब आप बाहर निकलते हैं, तो आप इसे स्वचालित रूप से हटाने के लिए docker run --rm चला सकते हैं।

चलाएं और निकालें: docker run --rm image_name

सभी बाहर निकाले गए कंटेनर निकालें:

आप डॉकटर ps -a का उपयोग करके कंटेनरों का पता लगा सकते हैं और उनकी स्थिति के अनुसार उन्हें फ़िल्टर कर सकते हैं: बनाया, फिर से शुरू करना, चलाना, रोकना या बाहर करना। बाहर निकलने वाले कंटेनरों की सूची की समीक्षा करने के लिए, स्थिति के आधार पर फ़िल्टर करने के लिए -f ध्वज का उपयोग करें। जब आप यह सत्यापित कर लेते हैं कि आप उन कंटेनरों को हटाना चाहते हैं, -q का उपयोग आईडी आईडी को कमांडर कमांड को पास करने के लिए करते हैं।

सूची:

docker ps -a -f status=exited

docker rm $(docker ps -a -f status=exited -q)

एक से अधिक फ़िल्टर का उपयोग करके कंटेनर निकालें :

एक अतिरिक्त मूल्य के साथ फ़िल्टर ध्वज को दोहराकर डॉकर फिल्टर को जोड़ा जा सकता है। इससे कंटेनरों की एक सूची बनती है जो या तो शर्त को पूरा करती है। उदाहरण के लिए, यदि आप या तो बनाए गए सभी कंटेनरों को हटाना चाहते हैं (एक ऐसी स्थिति जिसके परिणामस्वरूप जब आप एक अमान्य कमांड के साथ कंटेनर चलाते हैं) या बाहर निकलते हैं, तो आप दो फ़िल्टर का उपयोग कर सकते हैं:

docker ps -a -f status=exited -f status=created

सभी कंटेनरों को रोकें और निकालें:

docker stop $(docker ps -a -q)
docker rm $(docker ps -a -q)

0

एक भी कंटेनर निकालने के लिए

docker rm -f CONTAINER_ID

सभी कंटेनरों को हटाने के लिए

docker rm -f `docker container ps -qa`

0

सभी बंद कंटेनरों को हटाने के लिए docker system prune

लाइव कंटेनर को रोकने के लिए, docker stop CONTAINER_ID10 सेकंड का इंतजार करता है और यह कॉल करता हैdocker kill CONTAINER_ID

या docker kill CONTAINER_ID, आप कंटेनर को तुरंत रोक सकते हैं

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