2016-01-15 9 views
21

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

कुछ बातें मैं भ्रमित जो लग रहा है कर रहे हैं:

  1. एक नाम स्थान और एक cgroup के बीच क्या अंतर है? वे किस तरह के उपयोग के मामलों को संबोधित करते हैं?

  2. क्या डोकर शीर्ष पर लागू किया गया है इस लोकप्रियता हासिल करने के लिए इन?

  3. मैं इन सुविधाओं और कैसे वे लागू किया जाता है के आंतरिक जानना चाहूंगा।

+0

देखें के लिए यात्रा https://en.wikipedia.org/wiki/Cgroups और https://en.wikipedia.org/wiki/Cgroups#Namespace_isolation – gavv

उत्तर

36

उन दो विचार के लिए उचित लिंक PR 14307 में निर्धारित किया गया है:

हुड के अंतर्गत, डोकर निम्नलिखित घटकों पर बनाया गया है: की

cgroups और namespaces क्षमताओं लिनक्स कर्नेल

बुद्धि ज:

  • cgroup: नियंत्रण समूह के योग के कार्यों की/विभाजन सेट के लिए एक तंत्र है, और उनके भविष्य की सभी बच्चों, विशेष व्यवहार के साथ श्रेणीबद्ध समूहों में प्रदान करते हैं।
  • नेमस्पेस: एक अमूर्तता में एक वैश्विक प्रणाली संसाधन लपेटता है जो इसे नामस्थान के भीतर प्रक्रियाओं में प्रकट करता है कि उनके पास वैश्विक संसाधन का अपना अलग उदाहरण है।

संक्षेप में:

  • Cgroups = सीमा आप कितना उपयोग कर सकते हैं;
  • नामस्थान = सीमा क्या आप देख (और इसलिए का उपयोग करें) कर सकते हैं

"Anatomy of a Container: Namespaces, cgroups & Some Filesystem Magic" पर अधिक Jérôme Petazzoni से देखें।

Cgroups संसाधन पैमाइश और सीमित होते हैं:

  • स्मृति
  • सीपीयू
  • ब्लॉक आई/ओ
  • नेटवर्क

नेमस्पेस प्रणाली

के अपने स्वयं के दृश्य के साथ प्रक्रियाओं प्रदान करते हैं

Mul tiple नामस्थान:

  • पीआईडी ​​
  • शुद्ध
  • MNT
  • संघ राज्य क्षेत्रों
  • आईपीसी
  • उपयोगकर्ता: userns यह graduating from experimental in docker 1.10
    (प्रति-डेमॉन-उदाहरण के लिए कंटेनर जड़ की remapping है एक अप्रतिबंधित उपयोगकर्ता प्रगति पर है: PR 12648: इसे देखें design)
0

cgroups संसाधनों जो एक प्रक्रिया या प्रक्रियाओं इन संसाधनों का उपयोग कर सकते हैं का सेट सीमित करता है हो सकता है सीपीयू, मेमोरी, नेटवर्क I/O या उपयोग फाइल सिस्टम के लिए, जबकि नाम स्थान आराम करने के लिए प्रक्रियाओं के समूह की दृश्यता प्रतिबंधित प्रणाली में।

अधिक जानकारी के How Linux Kernel Cgroups And Namespaces Made Modern Containers Possible

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