--restart=always
रीबूट के मामले में पॉलिसी का उपयोग करने से मौजूदा कंटेनरों को फिर से शुरू किया जा सकेगा।
समस्या यह है कि यदि डॉकटर में चर्चा किए गए नए संस्करण की छवि को चलाने के साथ कई कंटेनर हैं - तो आप कंटेनर पर ऑटो-पुनरारंभ को कैसे अक्षम करते हैं? ।--restart=always
कंटेनर को स्वचालित रूप से हटाने की कोशिश करना, जब यह विकल्प docker run --rm
से मौजूद होता है, तो --restart=always
नीति के साथ समस्या भी होगी क्योंकि वे एक-दूसरे से विवाद कर रहे हैं ।
$ docker run --rm --restart always <image>
Conflicting options: --restart and --rm
तो इस मामले में एक और विकल्प चुनना बेहतर है: - जब तक रोका नीति नहीं है।
$ docker run --rm --restart unless-stopped <image>
यह नीति परस्पर विरोधी नहीं होंगेdocker run --rm
, लेकिन जैसा कि में विस्तार से बताया डोकर प्रलेखन :
यह उसी के समान है --restart=always
, सिवाय इसके कि जब कंटेनर को रोक दिया जाता है (मैन्युअल रूप से या अन्यथा) , तो डॉकर डेमॉन के पुनरारंभ होने के बाद भी इसे फिर से शुरू नहीं किया जाता है।
इस --restart unless-stopped
नीति का उपयोग करते समय , यह सुनिश्चित करने के लिए कि टर्मिनल बंद करते समय दुर्घटना से रूकने की स्थिति में पुनरारंभ करना काम कर रहा है, नीचे दिए गए एक और बार में एक बार करें:
$ docker ps
$ docker restart <container>
पिछले शेल में हत्या की प्रक्रिया समाप्त होने तक प्रतीक्षा करें, फिर इसे बंद करें और बस छोड़ दें ( निकास न करें )।
और कंटेनर में अभी भी चल रहे टर्मिनल में फिर से जाँच करें:
$ docker ps
यदि यह अभी भी चल रहा है तो आप सुरक्षित रूप से रीबूट कर सकते हैं और फिर से जांच सकते हैं कि एप्लिकेशन पुनः आरंभ हो रहा है और देखें कि आपका डॉकटर कई कंटेनरों के उपयोग के बिना साफ है।