डॉकर (सॉफ्टवेयर)

डॉकर प्लेटफ़ॉर्म सर्विस (PaaS) उत्पादों का एक सेट है जो 'कंटेनर' नामक पैकेज में सॉफ़्टवेयर वितरित करने के लिए ओएस-स्तर वर्चुअलाइज़ेशन का उपयोग करता है। सेवा में निःशुल्क और प्रीमियम दोनों स्तर हैं। सॉफ्टवेयर जो कंटेनरों को होस्ट करता है उसे डॉकर इंजन कहा जाता है। इसे पहली बार 2013 में शुरू किया गया था और इसे डॉकर, इंक द्वारा विकसित किया गया है।

डॉकर एक ऐसा उपकरण है जिसका उपयोग हल्के कंटेनरों में अनुप्रयोगों की तैनाती को स्वचालित करने के लिए किया जाता है ताकि अनुप्रयोग विभिन्न वातावरणों में कुशलता से काम कर सकें।

पृष्ठभूमि
कंटेनर एक दूसरे से अलग होते हैं और अपने स्वयं के सॉफ़्टवेयर, पुस्तकालय और व्यवस्था का प्रारूप फ़ाइलों को बंडल करते हैं, वे अच्छी तरह से परिभाषित चैनलों के माध्यम से एक दूसरे के साथ संवाद कर सकते हैं। क्योंकि सभी कंटेनर एकल ऑपरेटिंग सिस्टम कर्नेल की सेवाओं को साझा करते हैं, वे आभासी मशीनों की तुलना में कम संसाधनों का उपयोग करते हैं।

ऑपरेशन
डॉकर एक एप्लिकेशन और उसकी निर्भरता को एक आभासी पात्र में पार्सल कर सकता है जो किसी भी लिनक्स, विंडोज या मैकओएस कंप्यूटर पर चल सकता है। यह एप्लिकेशन को विभिन्न स्थानों पर चलने में सक्षम बनाता है, जैसे ऑन-प्रिमाइसेस, सार्वजनिक रूप से (विकेन्द्रीकृत कंप्यूटिंग, वितरित कंप्यूटिंग और क्लाउड कम्प्यूटिंग देखें) या निजी क्लाउड। लिनक्स पर चलते समय, डॉकर लिनक्स कर्नेल (जैसे सीग्रुप्स और कर्नेल लिनक्स नामस्थान) की संसाधन अलगाव सुविधाओं और संघ-सक्षम फ़ाइल सिस्टम (जैसे ओवरलेएफएस) का उपयोग करता है। वास्तविक मशीनों को शुरू करने और बनाए रखने के ओवरहेड से बचने के लिए कंटेनरों को एक ही लिनक्स उदाहरण के भीतर चलाने की अनुमति देने के लिए। मैकओएस पर डॉकर कंटेनरों को चलाने के लिए लिनक्स वर्चुअल मशीन का उपयोग करता है।

क्योंकि डॉकटर कंटेनर हल्के होते हैं, सर्वर या वर्चुअल मशीन एक साथ कई कंटेनर चला सकती है। 2018 के विश्लेषण में पाया गया कि विशिष्ट डॉकर उपयोग के मामले में प्रति होस्ट आठ कंटेनर चलाना शामिल है, और विश्लेषण किए गए एक चौथाई संगठन प्रति होस्ट 18 या अधिक चलाते हैं। इसे रास्पबेरी पाई जैसे सिंगल बोर्ड कंप्यूटर पर भी इंस्टॉल किया जा सकता है।

लिनक्स कर्नेल का समर्थन ज्यादातर नामस्थानों के लिए करता है ऑपरेटिंग वातावरण के एप्लिकेशन के दृश्य को अलग करता है, जिसमें प्रोसेस ट्री, नेटवर्क, यूजर आईडी और माउंटेड फाइल सिस्टम शामिल हैं, जबकि कर्नेल के cgroups मेमोरी और सीपीयू के लिए सीमित संसाधन प्रदान करते हैं। संस्करण 0.9 के बाद से, डॉकर में अपना स्वयं का घटक शामिल है (libcontainer कहा जाता है) लिबविर्ट, एलएक्ससी, और systemd-nspawn के माध्यम से अमूर्त वर्चुअलाइजेशन इंटरफेस का उपयोग करने के अलावा, लिनक्स कर्नेल द्वारा सीधे प्रदान की गई वर्चुअलाइजेशन सुविधाओं का उपयोग करने के लिए।

डॉकटरएक हल्के कंटेनर प्रदान करने के लिए एक उच्च-स्तरीय एपीआई लागू करता है जो अलगाव में प्रक्रियाओं को चलाता है।

लाइसेंसिंग मॉडल

 * डॉकर इंजन को अपाचे लाइसेंस 2.0 के तहत लाइसेंस दिया गया है। डॉकर डेस्कटॉप जीएनयू जनरल पब्लिक लाइसेंस के तहत लाइसेंस प्राप्त कुछ घटकों को वितरित करता है।
 * डॉकरफाइल फाइलों को ओपन-सोर्स लाइसेंस के तहत ही लाइसेंस दिया जा सकता है। यह महसूस करना महत्वपूर्ण है कि इस लाइसेंस स्टेटमेंट का दायरा केवल डॉकरफाइल है न कि कंटेनर इमेज।

घटक
सेवा की पेशकश के रूप में डॉकर सॉफ्टवेयर में तीन घटक होते हैं


 * सॉफ्टवेयर: डॉकर डेमन, जिसे  कहा जाता है, एक सतत प्रक्रिया है जो डॉकर कंटेनरों का प्रबंधन करती है और कंटेनर ऑब्जेक्ट्स को संभालती है। डेमन डॉकर इंजन एपीआई के माध्यम से भेजे गए अनुरोधों को सुनता है। डॉकर ग्राहक प्रोग्राम, जिसे   कहा जाता है, कमांड-लाइन इंटरफेस (सीएलआई) प्रदान करता है, जो उपयोगकर्ताओं को डॉकर डेमॉन के साथ बातचीत करने की अनुमति देता है।
 * ऑब्जेक्ट्स: डॉकर ऑब्जेक्ट्स विभिन्न संस्थाएं हैं। जिनका उपयोग डॉकर में एप्लिकेशन को इकट्ठा करने के लिए उपयोग की जाने वाली डॉकर वस्तुओं के मुख्य वर्ग चित्र, कंटेनर और सेवाएँ हैं।


 * डॉकटर कंटेनर मानकीकृत, संपुटित वातावरण है जो अनुप्रयोगों को चलाता है। कंटेनर को डॉकटर एपीआई या सीएलआई का उपयोग करके प्रबंधित किया जाता है।
 * डॉकर इमेज एक रीड-ओनली टेम्प्लेट है जिसका इस्तेमाल कंटेनर बनाने के लिए किया जाता है। छवियों का उपयोग एप्लिकेशन को स्टोर और शिप करने के लिए किया जाता है।
 * एक डॉकर सेवा कंटेनरों को कई डॉकर डेमॉन में स्केल करने की अनुमति देती है। परिणाम को एक झुंड के रूप में जाना जाता है, सहयोगी डेमॉन का एक सेट जो डॉकर एपीआई के माध्यम से संचार करता है।


 * पंजीकरण: डॉकर पंजीकरण डॉकर छवियों के लिए भंडार है। डॉकर क्लाइंट उपयोग के लिए छवियों को डाउनलोड ("पुल") करने के लिए पंजीकरण से जुड़ते हैं या उनके द्वारा बनाई गई छवियों को अपलोड ("पुश") करते हैं। पंजीकरण सार्वजनिक या निजी हो सकती हैं। मुख्य सार्वजनिक पंजीकरण डॉकर हब है। डॉकर हब डिफ़ॉल्ट पंजीकरण है जहां डॉकर छवियों की तलाश करता है। डॉकर पंजीकरण भी घटनाओं के आधार पर सूचनाएं बनाने की अनुमति देती हैं।

उपकरण

 * डॉकर कंपोज़ बहु-कंटेनर डॉकर अनुप्रयोगों को परिभाषित करने और चलाने के लिए उपकरण है। यह आवेदन की सेवाओं को समनुरूप करने के लिए YAML फ़ाइलों का उपयोग करता है और कमांड के साथ सभी कंटेनरों का निर्माण और स्टार्ट-अप प्रक्रिया करता है।  सीएलआई उपयोगिता उपयोगकर्ताओं को एक साथ कई कंटेनरों पर कमांड चलाने की अनुमति देती है, उदाहरण के लिए, छवियों का निर्माण, अनुमापकता कंटेनर, रोके गए कंटेनरों को चलाना, और बहुत कुछ। Docker-compose.yml फ़ाइल का उपयोग एप्लिकेशन की सेवाओं को परिभाषित करने के लिए किया जाता है और इसमें विभिन्न कॉन्फ़िगरेशन विकल्प शामिल होते हैं। छवि हेरफेर, या उपयोगकर्ता-संवादात्मक विकल्पों से संबंधित आदेश डॉकर कंपोज़ में प्रासंगिक नहीं हैं क्योंकि वे एक कंटेनर को संबोधित करते हैं। उदाहरण के लिए,   विकल्प विन्यास विकल्पों को परिभाषित करता है जैसे कि डॉकरफाइल पथ,   विकल्प को डिफ़ॉल्ट डॉकर कमांड को रद्द करने की अनुमति देता है, और बहुत कुछ। डॉकर कंपोज़ (संस्करण 0.0.1) का पहला सार्वजनिक बीटा संस्करण 21 दिसंबर, 2013 को जारी किया गया था। पहला उत्पादन-तैयार संस्करण (1.0) 16 अक्टूबर 2014 को उपलब्ध कराया गया था।
 * डॉकर झुंड डॉकटर कंटेनरों के लिए देशी क्लस्टर कार्यक्षमता प्रदान करता है, जो डॉकर इंजनों के समूह को एकल वर्चुअल डॉकर इंजन में बदल देता है। डॉकर 1.12 और उच्चतर में, झुंड मोड को डॉकर इंजन के साथ एकीकृत किया गया है।    और सीएलआई उपयोगिता उपयोगकर्ताओं को झुंड कंटेनर चलाने, डिस्कवरी टोकन बनाने, झुंड में सूचीबद्ध नोड्स करने आदि की अनुमति देती है।     सीएलआई उपयोगिता उपयोगकर्ताओं को झुंड में नोड्स को प्रबंधित करने के लिए विभिन्न कमांड चलाने की अनुमति देती है, उदाहरण के लिए, नोड्स को झुंड में सूचीबद्ध करना, नोड्स को अपडेट करना और झुंड से नोड्स को हटाना। डॉकर रफ़ सर्वसम्मति  एल्गोरिथम का उपयोग करके झुंडों का प्रबंधन करता है। रफट के अनुसार, अपडेट किए जाने के लिए, अधिकांश झुंड नोड्स को अपडेट पर सहमत होने की आवश्यकता है।
 * डॉकटर परिमाण डेटा की स्वतंत्र दृढ़ता की सुविधा देता है, जिससे कंटेनर के हटाए जाने या फिर से बनाए जाने के बाद भी डेटा बना रहता है।

इतिहास
डॉकर इंक की स्थापना वाई कॉम्बिनेटर समर 2010 स्टार्टअप इनक्यूबेटर ग्रुप के दौरान कामेल फौनाडी, सोलोमन हाइक्स और सेबेस्टियन पहल द्वारा की गई थी और 2011 में लॉन्च किया गया। यह स्टार्टअप भी फाउंडर के डेन फर्स्ट कॉहोर्ट में 12 स्टार्टअप्स में से एक था। हाइक्स ने फ्रांस में डॉकर परियोजना को डॉटक्लाउड के भीतर एक आंतरिक परियोजना के रूप में शुरू किया, जो एक सेवा कंपनी के रूप में एक मंच है।

डॉकर ने 2013 मे पायकॉन में सांता क्लारा में सार्वजनिक रूप से शुरुआत की। इसे मार्च 2013 में ओपन-सोर्स के रूप में जारी किया गया था। उस समय, यह एलएक्ससी को अपने डिफ़ॉल्ट निष्पादन वातावरण के रूप में उपयोग करता था। एक साल बाद, संस्करण 0.9 की रिलीज़ के साथ, डॉकर ने एलएक्ससी को अपने स्वयं के घटक, लिबकंटेनर के साथ बदल दिया, जिसे गो प्रोग्रामिंग भाषा में लिखा गया था।

2017 में, डॉकर ने खुले अनुसंधान और विकास के लिए मोबी प्रोजेक्ट बनाया।

अभिग्रहण

 * 19 सितंबर, 2013: रेड हैट और डॉकर ने फेडोरारेड, रेड हैट एंटरप्राइज लिनक्स(आरएचईएल) और ओपनशिफ्ट के आसपास सहयोग की घोषणा की।
 * 15 अक्टूबर 2014: माइक्रोसॉफ्ट ने विंडोज सर्वर में डॉकर इंजन के एकीकरण के साथ-साथ विंडोज में डॉकर क्लाइंट भूमिका के लिए मूल समर्थन की घोषणा की।
 * नवंबर 2014: Amazon Elastic Compute Cloud (EC2) के लिए डॉकटर कंटेनर सेवाओं की घोषणा की गई।
 * 10 नवंबर 2014: डॉकर ने स्ट्रैटोस्केल के साथ साझेदारी की घोषणा की।
 * 4 दिसंबर 2014: आईबीएम ने डॉकर के साथ एक रणनीतिक साझेदारी की घोषणा की जो डॉकर को आईबीएम क्लाउड के साथ और अधिक निकटता से एकीकृत करने में सक्षम बनाती है।
 * 22 जून 2015: डॉकर और कई अन्य कंपनियों ने घोषणा की कि वे सॉफ्टवेयर कंटेनरों के लिए एक नए विक्रेता और ऑपरेटिंग-सिस्टम-स्वतंत्र मानक पर काम कर रहे हैं।
 * दिसंबर 2015: ओरेकल क्लाउड ने डॉकर कंटेनर स्टार्टअप, स्टैकइंजिन का अधिग्रहण करने के बाद डॉकर कंटेनर समर्थन जोड़ा।
 * अप्रैल 2016: विंडॉक्स, स्वतंत्र सॉफ्टवेयर विक्रेता ने विंडोज के लिए डॉकर्स ओपन सोर्स प्रोजेक्ट का एक पोर्ट जारी किया, जो एसक्यूएल सर्वर 2008 के सभी संस्करणों के साथ विंडोज सर्वर 2012 आर2 और सर्वर 2016 का समर्थन करता है।
 * मई 2016: विश्लेषण ने निम्नलिखित संगठनों को डॉकर के मुख्य योगदानकर्ताओं के रूप में दिखाया: डॉकर टीम, सिस्को सिस्टम्स, गूगल, हुवाई, आईबीएम, माइक्रोसॉफ्ट और रेड हैट।
 * 8 जून, 2016: माइक्रोसॉफ्ट ने घोषणा कि डॉकर को अब विंडोज 10 पर मूल रूप से इस्तेमाल किया जा सकता है।
 * जनवरी 2017: लिंक्डइन प्रोफाइल के विश्लेषण में उल्लेख किया गया है कि 2016 में डॉकर की उपस्थिति में 160% की वृद्धि हुई है।
 * 6 मई, 2019: माइक्रोसॉफ्ट ने लिनक्स (डब्ल्यूएसएल) के लिए विंडोज सबसिस्टम के दूसरे संस्करण की घोषणा की। डॉकर, इंक ने घोषणा कि उसने विंडोज के लिए डॉकर के एक संस्करण पर काम करना शुरू कर दिया है डब्ल्यूएसएल 2 पर चलने वाले विंडोज के लिए विशेष रूप से, इसका मतलब है कि डॉकर विंडोज 10 होम पर चल सकता है (पहले यह हाइपर-वी का उपयोग करने के बाद से विंडोज प्रो और एंटरप्राइज तक सीमित था)।
 * अगस्त 2020: माइक्रोसॉफ्ट ने डब्ल्यूएसएल2 के विंडोज 10 संस्करण 1903 और 1909 (पहले डब्ल्यूएसएल2 केवल संस्करण 2004 पर उपलब्ध था) के लिए बैकपोर्ट की घोषणा की और डॉकर डेवलपर्स ने इन प्लेटफॉर्म्स के लिए डॉकर की उपलब्धता की घोषणा की।
 * अगस्त 2021: विंडोज और मैकओएस के लिए डॉकर डेस्कटॉप अब एंटरप्राइज यूजर्स के लिए फ्री नहीं है। डॉकर ने बड़े व्यावसायिक ग्राहकों के लिए मुफ्त डॉकर डेस्कटॉप का उपयोग समाप्त कर दिया और इसकी मुफ्त योजना को एक व्यक्तिगत योजना के साथ बदल दिया। लिनक्स वितरण पर डॉकर अप्रभावित रहता है।

यह भी देखें

 * DevOps
 * DevOps टूलचैन
 * gvisor
 * कुबेरनेट्स
 * लिनक्स कंटेनरों की सूची
 * माइक्रोसर्विसेज
 * ओएस-स्तर वर्चुअलाइजेशन
 * सेवा घटक वास्तुकला
 * विलक्षणता - एचपीसी समूहों के लिए डॉकर विकल्प
 * ओपन कंटेनर उपक्रम

बाहरी संबंध

 * Container Terminology - Practical terminology
 * Container Terminology - Practical terminology