आपके पास बुनियादी डॉकर अवधारणाओं की कमी है। यह बिलकुल अलग बात है।
पहली चीज जिसे आपको जानना आवश्यक है वह है डॉकर का दर्शन: एक कंटेनर में पृथक एक प्रक्रिया को चलाना । आप डॉकर कंटेनर में ओएस नहीं चलाएंगे, आप अपने चयन के लिनक्स वितरण के आधार पर एक रूट फाइलसिस्टम सामग्री के साथ एक कंटेनर के अंदर एक प्रक्रिया चलाएंगे। उबंटू दूसरों के बीच एक विकल्प है।
अब आपको आश्चर्य होना चाहिए कि आपके द्वारा चलाए जा रहे linux वितरण से अलग एक linux बेस छवि के अंदर चलने वाली प्रक्रिया को कैसे प्राप्त करना संभव है। आपको मूल रूप से चलाने के लिए OS के लिए:
- एक बूट फाइलसिस्टम: इसमें बूटलोडर और कर्नेल होता है जो एक बार लोड होने पर मेमोरी में रहते हैं। डॉकटर कंटेनरों के मामले में हम इसकी परवाह नहीं करते हैं क्योंकि कर्नेल को मेजबान के साथ साझा किया जाता है और यह सभी लाइनर वितरणों के बीच का आम हिस्सा है।
- एक रूट फाइलसिस्टम: इसमें फाइलसिस्टम संरचना होती है। यह एक लिनक्स वितरण से दूसरे में भिन्न हो सकता है। यह केवल तब तक पढ़ा जाता है जब तक बूट अनुक्रम समाप्त नहीं हो जाता।
डॉकर एक कंटेनर के अंदर डिस्क ब्लॉक की परतों का प्रबंधन करने के लिए UnionFS का उपयोग करता है ताकि आप उन्हें ढेर कर सकें।
पर्दे के पीछे, यह एक यूनियन माउंट का उपयोग करता है जो एक ही समय में कई वर्चुअल सिस्टम को एक ही आभासी की तरह प्रदर्शित करने की अनुमति देता है। यह वास्तव में बेस इमेज फाइल को रीड-ओनली मोड में बेस रूट फाइल सिस्टम के शीर्ष पर रीड-राइट मोड के रूप में छोड़ देता है।
यहां आपके पास एक तरह से बिछाए गए डिस्क ब्लॉक का ढेर है, जिससे बेस इमेज से बेस इमेज आती है जिसमें एक ही फाइल सिस्टम एक बार असली होस्ट में इंस्टॉल हो जाता है, लेकिन यह इस समय कंटेनर के अंदर है।
आखिरी चीज़ की कमी है: आप इस चीज़ को अलग-थलग कैसे चलाते हैं?
इसका उत्तर है: नाम स्थान। मैं यहाँ विवरण में नहीं जाऊँगा क्योंकि यह मूल प्रश्न से थोड़ा हटकर होगा। लेकिन आपको यह जानने की जरूरत है कि कर्नेल 2.4.19 के बाद से, विभिन्न प्रकार के नाम साल के साथ दिखाई देते हैं। वर्तमान में निम्नलिखित नामस्थान उपलब्ध हैं:
- IPC: IPC नामस्थान (इंटरप्रोसेस संचार)
- MNT: माउंट नेमस्पेस
- NET: नेटवर्क नेमस्पेस
- पीआईडी: पीआईडी नेमस्पेस
- उपयोगकर्ता: उपयोगकर्ता नामस्थान (यूआईडी)
- यूटीएस: यूटीएस नामस्थान (होस्टनाम)
नामस्थान कर्नेल के अंदर पृथक संरचनाएं हैं जो प्रक्रियाओं को एक विशेष वातावरण के साथ चलने की अनुमति देती हैं। उदाहरण के लिए, MNT नेमस्पेस आधार छवि रूट फाइल सिस्टम विशिष्टताओं में चलने वाली प्रक्रिया को प्राप्त करने के लिए प्रमुख विशेषता होगी। नेट नेमस्पेस कंटेनर के लिए एक अन्य मुख्य विशेषता होगी जिसमें डॉकटर पुल आदि के साथ संचार करने के लिए विशिष्ट नेटवर्क इंटरफेस होना चाहिए।
तो, हाँ, इस सब का मुख्य उद्देश्य एक एप्लिकेशन को अलग-थलग करना है, इसे अपने स्थानीय वातावरण से जहाज पर कंटेनर के साथ एक बॉक्स के अंदर आसानी से उत्पादन करना है।
आगे खुदाई करने से पहले डॉकटर के दस्तावेज को पढ़ना एक अच्छा विचार होगा।