2016-03-08 11 views
7

दो प्रक्रियाओं के लिए ए और बी, दोनों पुस्तकालय libc.so का उपयोग करते हैं, libc.so केवल एक बार स्मृति में लोड होता है। यह एक सामान्य स्थिति है जब ए और बी दोनों एक ही मेजबान और एक ही रूटफ पर चलते हैं।कंटेनर में साझा लाइब्रेरी

जब कंटेनर की बात आती है, यदि ए और बी विभिन्न कंटेनरों में चल रहे हैं, तो ए और बी समान स्मृति क्षेत्र साझा कर रहे हैं?

उदाहरण के लिए

imageA

--libc.so

--programA

imageB

--libc.so

--programB

हम विभिन्न रूटफ में ए और बी चलाने के लिए chroot का उपयोग करते हैं। दो libc.so एक ही हैं। Libc.so स्मृति में दो बार लोड किया जाएगा?

+0

आप केवल 'libc.so' वाले कंटेनर को चला सकते हैं और फिर ए और बी कंटेनर को लिंक कर सकते हैं। या इसे साझा करने के लिए वॉल्यूम का उपयोग करें। –

+0

मुझे पता है कि यह पुस्तकालय साझा करेगा। लेकिन अगर मैं अलग-अलग कंटेनरों में दौड़ रहा हूं तो ए और बी एक ही राम क्षेत्र साझा करेंगे। –

+0

नहीं, वे नहीं करेंगे। – Sobrique

उत्तर

-1

वे उसी रैम क्षेत्र को साझा नहीं करेंगे; वैसे भी वर्चुअलाइजेशन (कंटेनरों के साथ) का उद्देश्य है - (स्मृति) संसाधन अलगाव और अन्य के लिए। अधिक के लिए, स्मृति cgroups को देखो। animation के साथ यहां अच्छा लिंक।

4

वास्तव में, एक & बी साझा करता है जो एक साझा लाइब्रेरी libc.so का उपयोग करता है समान स्मृति साझा कर सकता है। कुछ हद तक अनौपचारिक रूप से यह निर्भर करता है कि आप किस डॉकर स्टोरेज ड्राइवर का उपयोग कर रहे हैं। यदि आप एक स्टोरेज ड्राइवर का उपयोग करते हैं जो साझा लाइब्रेरी फ़ाइलों को उसी डिवाइस/इनोड से उत्पन्न होने पर प्रकट कर सकता है, जब वे एक ही डॉकर परत में रहते हैं तो वे वही वर्चुअल मेमोरी कैश पेज साझा करेंगे। Aufs, ओवरले या ओवरले 2 स्टोरेज ड्राइवरों का उपयोग करते समय आपके साझा लाइब्रेरी मेमोरी साझा करेंगे लेकिन अन्य स्टोरेज ड्राइवरों का उपयोग करते समय वे नहीं करेंगे।

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

+1

इसका मतलब है कि - (एक ही पुस्तकालयों पथ का उपयोग कर कंटेनर लेकिन विभिन्न छवियों स्मृति का हिस्सा नहीं होगा, क्योंकि परतों उर्फ ​​छवियों - एक ही छवि या आधार छवि का उपयोग कर कंटेनर (कोई मध्यवर्ती छवि संभालने छवि को संशोधित किया है) स्मृति साझा करेंगे डिस्क पर विभिन्न फाइलें हैं) – untore

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