समस्या यह है कि restart: always जब मैं कंटेनर को मारता हूं तो नीति काम नहीं करती है (ऐप क्रैश का उपयोग करके अनुकरण करना docker kill) और डॉकर-कंपोज़ मेरे कंटेनर को पुनरारंभ नहीं करता है, भले ही निकास कोड 137 है. जब मैं उपयोग करता हूं तो मैं उसी व्यवहार का निरीक्षण करता हूं restart: on-failure नीति। Versions 2 और 3 डॉकर-रचना का व्यवहार समान है। मेरा सिस्टम उबंटू सर्वर 16.04 एक्स 64 है ।
मेरे प्रश्न हैं:
डॉकर-कंपोज़ दुर्घटनाग्रस्त (मारे गए) कंटेनर को पुनरारंभ क्यों नहीं करता है?
जब आप डॉकर किल का उपयोग करते हैं, तो यह अपेक्षित व्यवहार है क्योंकि डॉकर कंटेनर को पुनरारंभ नहीं करता है: "यदि आप मैन्युअल रूप से एक कंटेनर को रोकते हैं, तो इसकी पुनरारंभ नीति को तब तक अनदेखा किया जाता है जब तक कि डॉकर डेमॉन पुनरारंभ न हो जाए या कंटेनर मैन्युअल रूप से पुनरारंभ न हो जाए । यह पुनरारंभ लूप को रोकने का एक और प्रयास है" (संदर्भ)
यदि आप डॉकर स्टॉप या डॉकर किल का उपयोग करते हैं, तो आप मैन्युअल रूप से कंटेनर को रोक रहे हैं । आप पुनरारंभ नीतियों के बारे में कुछ परीक्षण कर सकते हैं: डॉकर डेमॉन को पुनरारंभ करना, अपने सर्वर को रिबूट करना, कंटेनर के अंदर सीएमडी का उपयोग करना और निकास चलाना । ..
उदाहरण के लिए यदि मैं अपने कंटेनर को पुनरारंभ नीति के साथ तैनात करता हूं, तो मैं देखता हूं कि यह कोड 137 से बाहर निकल गया है लेकिन इसे डॉकर पीएस-ए के अनुसार पुनरारंभ नहीं किया गया है, यह बाहर रहता है:
[root@andromeda ~]# docker ps --allCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES819d1264c30a redis:alpine "docker-entrypoint..." 3 minutes ago Exited (137) 34 seconds ago keepalive_redis_1
लेकिन अगर मैं डेमॉन को पुनरारंभ करता हूं । ..
[root@andromeda ~]# docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES819d1264c30a redis:alpine "docker-entrypoint..." 30 minutes ago Up 2 seconds 6379/tcp keepalive_redis_1
कंटेनर स्थापित किया गया था कि के साथ पुनः आरंभ करने की नीति फिर से शुरू होता है जो क्या प्रलेखन कहते हैं, तो गोदी श्रमिक को मारने नहीं है, जिस तरह से आप चाहिए परीक्षण को पुनः आरंभ करने की नीति के रूप में यह मान लिया है कि आप जान-बूझकर बंद कर दिया कंटेनर और गोदी श्रमिक के लिए चाहता है एक तरीका है को रोकने के लिए शुरु छोरों, अगर तुम्हें मार, यह आप वास्तव में चाहते हैं, इसे मारने के लिए.
मुझे निम्नलिखित लिंक मूल्यवान मिले जो विभिन्न संस्करणों में समान व्यवहार दिखाते हैं (इसलिए यह बग नहीं बल्कि अपेक्षित व्यवहार है):
मैं कई बार वहां गया था, लेकिन जैसा कि आप देख सकते हैं, प्रलेखन मजबूत नहीं है और कोई स्पष्टीकरण नहीं है कि यह सुविधा कैसे काम करती है, इसलिए मैंने सवाल पूछा - मैं इस क्षेत्र में हाथों के अनुभव वाले किसी व्यक्ति से जवाब देखना चाहूंगा ।