यह छवियों और कंटेनरों के बीच अंतर करना सहायक हो सकता है (docs)। एक छवि स्थिर है और केवल डिस्क पर रहता है। कंटेनरछवि का एक चल रहा उदाहरण है और इसमें अपनी प्रक्रिया पेड़ के साथ-साथ रैम और अन्य रनटाइम संसाधन भी शामिल हैं।
एक छवि परतों को एकत्रित करने और परतों को इकट्ठा करने के तरीके के बारे में परतों के मेटाडेटा का तार्किक समूह है। उस मेटाडेटा का हिस्सा यह है कि प्रत्येक परत अपने माता-पिता की आईडी जानता है।
तो, एक परत में क्या जाता है? आपके द्वारा अभिभावक में जोड़े गए फ़ाइलें (और निर्देशिका)। विशेष फाइलें भी हैं ("व्हाइटआउट") जो इंगित करती हैं कि माता-पिता से कुछ हटा दिया गया था।
जब आप docker run
एक छवि, docker
एक कंटेनर बनाता है: यह मेजबान से अलग एक नई "रूट" फ़ाइल सिस्टम बनाने, सही क्रम में सभी परतों को अनपैक करता है। docker
छवि मेटाडेटा भी पढ़ता है और जब छवि बनाई गई थी तो निर्दिष्ट "एंट्रीपॉइंट" या "कमांड" शुरू होता है - जो एक नई प्रक्रिया उप-पेड़ शुरू करता है। कंटेनर के अंदर से, वह पहली प्रक्रिया पेड़ की जड़ की तरह दिखती है, लेकिन मेजबान से आप देख सकते हैं कि यह प्रक्रियाओं का एक उप-नियम है।
रूट फ़ाइल सिस्टम एक लिनक्स डिस्ट्रो को दूसरे से अलग करता है (कुछ कर्नेल मॉड्यूल अंतर भी हो सकता है, और बूटलोडर/बूट फ़ाइल सिस्टम अंतर भी हो सकता है, लेकिन ये आमतौर पर चल रही प्रक्रियाओं के लिए अदृश्य होते हैं)। कर्नेल को मेजबान के साथ साझा किया जाता है और वास्तव में, कंटेनर के अंदर भी अपनी सामान्य जिम्मेदारियों का प्रबंधन करता है।लेकिन रूट फाइल सिस्टम अलग है, और इसलिए जब आप कंटेनर के अंदर होते हैं, तो ऐसा लगता है और डॉकर छवि में जो भी डिस्ट्रो था, ऐसा लगता है।
कंटेनर न केवल अपनी फाइल सिस्टम और प्रक्रिया पेड़ है, बल्कि इसका अपना लॉजिकल नेटवर्क इंटरफेस भी है और वैकल्पिक रूप से, रैम और सीपीयू समय का अपना आवंटन है। हालांकि, आप कंटेनर पर नियंत्रण में हैं, ऑपरेटर के रूप में, इसलिए आप मेजबान के नेटवर्क इंटरफ़ेस को कंटेनर के साथ साझा करने का निर्णय ले सकते हैं, इसे रैम और सीपीयू तक असीमित पहुंच प्रदान कर सकते हैं, और मेजबान से डिवाइस, फ़ाइलों और निर्देशिकाओं को भी माउंट कर सकते हैं कंटेनर। डिफ़ॉल्ट चीजों को अलग रखना है, लेकिन आपके पास अलगाव मॉडल को तोड़ने की शक्ति है जितनी आपको चाहिए।
तो कंटेनर विशिष्ट सामान कर्नेल नेमस्पेस के माध्यम से लागू किया गया सामान है? तो प्रत्येक कंटेनर की अपनी खुद की पिड नेमस्पेस की तरह, इसका अपना एमएनटी नेमस्पेस, इसका अपना नेट नेमस्पेस .....? मेजबान के साथ बाकी सब कुछ साझा किया जाता है? –
बिल्कुल, कंटेनर को ट्विक करने के कुछ तरीके हैं जहां आप होस्ट स्टैक का उपयोग सीधे कर सकते हैं लेकिन इसके सभी नामस्थानों के अलावा। –
डॉकर मार्च से डिफ़ॉल्ट रूप से एलएक्ससी पर भरोसा नहीं करता है। – icecrime