2014-10-30 9 views
12

मैं डॉकर का उपयोग करके सेलेनियम सर्वर स्थापित कर रहा था, मूल रूप से this गीथब ट्यूटोरियल का पालन कर रहा था।होस्ट प्रक्रिया सूची पर दिखाए गए डॉकर प्रक्रिया

मुझे सर्वर को स्थापित करने में कोई समस्या नहीं है, लेकिन मैंने देखा कि डॉकर छवि के अंदर शुरू की गई प्रक्रियाओं को वास्तव में मेरी मेजबान प्रक्रिया सूची में दिखाया गया है।

enter image description here

आप स्क्रीन शॉट में देख सकते हैं, डोकर एक bash स्क्रिप्ट चलाने पर है और यह भी एक जार फ़ाइल है, जो मुझे लगता है बॉक्स के अंदर ही होना चाहिए मार डाला। क्या इसका मतलब यह है कि मेजबान का उपयोगकर्ता संभावित रूप से कंटेनर के बाहर एक निश्चित प्रक्रिया को मार सकता है जो पूरी तरह से बॉक्स के अंदर दुनिया को पेंच कर देगा?

जब मैंने कंटेनर को रोक दिया, तो सभी प्रक्रियाओं की अपेक्षा की गई।

क्या इस तरह डॉकर के लिए डिज़ाइन किया गया है .. और दोषपूर्ण अलगाव वह है जो आपको वर्चुअलबॉक्स/वाग्रेंट के साथ हल्के वजन के लिए व्यापार में स्वीकार करना है ... या मैं कुछ गलत कर रहा हूं?

धन्यवाद!

+0

अच्छी तरह से अगर आप http://12factor.net/ के लिए आप बाह्य संसाधनों के साथ समस्या नहीं है निर्देशित कर रहे हैं। लेकिन मैं कुछ बाहरी प्रक्रियाओं के बारे में आपके प्रश्न के बारे में स्पष्ट नहीं हूं ... डॉकर कंटेनर के अंदर सभी अलग हैं, केवल तभी जब आप कंटेनर को मारते हैं तो सेवाएं नीचे आती हैं। – kikicarbonell

+0

यह वही तरीका है। यकीन नहीं है कि मैं इसे "दोषपूर्ण" के रूप में वर्णित करूंगा। – user2105103

उत्तर

19

हां, यह इरादा है। ध्यान दें कि प्रक्रिया रूट से शुरू की जाती है, इसलिए रूट विशेषाधिकार वाले उपयोगकर्ता उन्हें मार सकते हैं, लेकिन मूल विशेषाधिकार वाले उपयोगकर्ता उस से भी बदतर हो सकते हैं (उदाहरण के लिए, अनइंस्टॉल डॉकर ओ_ओ) ...

यह "दोषपूर्ण" अलगाव वास्तव में मेजबान मशीन पर चल रहे एक मॉनीटर प्रक्रिया से आपके सभी कंटेनरों के अंदर चल रही प्रक्रियाओं की तरह monitor की क्षमता जैसे कुछ शानदार लाभ हैं।

25

यह डोकर हल्के आभासी मशीन " है कि क्यों कुछ VirtualBox या VMWare के रूप में समान व्यवहार लेकिन सिर्फ तेजी से।

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

कंटेनर और अन्य के अंदर चल रही प्रक्रियाओं के बीच अंतर करने के लिए, top चलाएं फिर shift+f दबाएं और एनएसपीआईडी ​​और एन का चयन करें संलग्न स्क्रीनशॉट में दिखाए गए sUSER।

फिर आप प्रत्येक प्रक्रिया के बगल में नामस्थान को सीधे सर्वर पर चल रहे हैं, तो यह मूल्य खाली होगा और यदि कंटेनर के अंदर चल रही प्रक्रिया आपको प्रत्येक कंटेनर के लिए नेमस्पेस आईडी दिखाई देगी। (आप नाम स्थान से सॉर्ट कर सकते हैं प्रत्येक कंटेनर में प्रक्रियाओं को देखने के लिए)

top nsPID and nsUSER

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