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

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

सेवा में नि: शुल्क और प्रीमियम दोनों स्तर हैं। कंटेनरों को होस्ट करने वाले सॉफ़्टवेयर को डोकर इंजन कहा जाता है। इसे पहली बार 2013 में शुरू किया गया था और इसे डोकर इंक द्वारा विकसित किया गया है।

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

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

= ऑपरेशन =
डॉकर एक एप्लिकेशन और उसकी निर्भरता को एक वर्चुअल कंटेनर में पैकेज कर सकता है जो किसी भी लिनक्स सर्वर पर चल सकता है। यह लचीलेपन और पोर्टेबिलिटी प्रदान करने में मदद करता है जिससे एप्लिकेशन को विभिन्न स्थानों पर चलाया जा सकता है, चाहे ऑन-प्रिमाइसेस, सार्वजनिक क्लाउड में या निजी क्लाउड में।डॉकर लिनक्स कर्नेल (जैसे cgroups और कर्नेल नेमस्पेस) के रूप में संसाधन अलगाव सुविधाओं का उपयोग करता है और एक संघ-सक्षम फ़ाइल सिस्टम (जैसे OverlayFS)  ओवरहेड से बचने के लिए कंटेनरों को एकल लिनक्स उदाहरण में चलाने की अनुमति देता है। वर्चुअल मशीन शुरू करने और ले जाने की। क्योंकि डॉकटर कंटेनर हल्के होते हैं, एक एकल सर्वर या वर्चुअल मशीन एक साथ कई कंटेनर चला सकती है। २०१8 के एक विश्लेषण में पाया गया कि एक सामान्य डॉकटर के उपयोग के मामले में प्रति मेजबान आठ कंटेनर शामिल हैं, लेकिन विश्लेषण किए गए संगठनों का एक चौथाई प्रति मेजबान १ quarter या उससे अधिक चलता है।

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

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

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

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

### उपकरण

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