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