2015-01-14 18 views
5

मेरे पास परीक्षणों का एक सेट है जिसे मैं डॉकर कंटेनर पर चलाने के लिए चाहता हूं। परीक्षण के बीच में मैं परीक्षण डेटा बदल रहा हूं और मुझे जेटी को पुनरारंभ करने की आवश्यकता है।डॉकर: कंटेनर के अंदर प्रक्रिया को पुनरारंभ कैसे करें?

ऐसा करने का सबसे अच्छा तरीका क्या है?

मैं कुछ विकल्प कल्पना कर सकते हैं:

  1. SSH के साथ

    - लेकिन डोकर ssh के लिए सबसे अच्छा विकल्प नहीं है।

  2. सॉकेट सुनने के लिए डॉकर पर पाइथन एजेंट - एक और बंदरगाह का पर्दाफाश करें, जेटी कनेक्ट करें और पुनरारंभ करें।

शायद इसके लिए बेहतर विचार हैं?

धन्यवाद

उत्तर

10

प्रक्रिया आप पुनः आरंभ करने के डोकर कंटेनर के लिए प्राथमिक प्रक्रिया (यानी एक आप सेट है कोशिश कर रहे हैं की तरह लगता है आपके डॉकरफ़ाइल में यदि आपके पास कोई है, और जब आप कंटेनर के अंदर 'ps -ef' चलाते हैं तो आप अपनी प्रक्रिया के लिए पीआईडी ​​को 1 पर सेट करेंगे)। यदि यह मामला है, तो आप कंटेनर के अंदर से इसे पुनरारंभ नहीं कर सकते हैं। आपको केवल कंटेनर को पुनरारंभ करना चाहिए:

docker restart <container_id> 
+0

यह लगभग डेढ़ साल पहले था ... :) वास्तव में यह प्रक्रिया को पुनरारंभ करने का सही तरीका है। केवल डॉकर कंटेनर को पुनरारंभ करें। यह डॉकर समाधान का मुख्य सिद्धांत है। – SergiiKozlov

2

कंटेनर दर्ज करें और उसे पुन: प्रारंभ।

मैनुअल रास्ता:

docker exec -it <containeridorname> /bin/bash 

या स्वचालित तरीके:।

docker exec -it <containeridorname> /restartjettycommand.sh 
+0

समाधान के लिए धन्यवाद। यह बढ़िया काम करता है। लेकिन अब मुझे एक और समस्या है। मैं डॉकरफाइल से सीएमडी कमांड के साथ जेटी शुरू करता हूं। और ऐसा लगता है कि मैं इस प्रक्रिया को पुनरारंभ नहीं कर सकता :( – SergiiKozlov

+0

मुझे जेटी के लिए विशेषताओं के बारे में निश्चित नहीं है। एक विकल्प रनिट या पर्यवेक्षक जैसे कुछ का उपयोग करना होगा - फिर आप कंटेनर में निष्पादित कर सकते हैं और बस सेवा को पुनरारंभ कर सकते हैं। – user2105103

संबंधित मुद्दे