जवाबों:
से डोकर पूछे जाने वाले प्रश्न :
डॉकर lxc के लिए एक प्रतिस्थापन नहीं है। "lxc", लिनक्स कर्नेल (विशेष रूप से नामस्थान और नियंत्रण समूह) की क्षमताओं को संदर्भित करता है जो एक दूसरे से सैंडबॉक्सिंग प्रक्रियाओं की अनुमति देते हैं, और उनके संसाधन आवंटन को नियंत्रित करते हैं।
कर्नेल सुविधाओं की इस निम्न-स्तरीय नींव के शीर्ष पर, डॉकर कई शक्तिशाली कार्यात्मकताओं के साथ एक उच्च-स्तरीय उपकरण प्रदान करता है:
मशीनों के पार पोर्टेबल तैनाती।डॉकर किसी एप्लिकेशन और उसकी सभी निर्भरताओं को एक ही ऑब्जेक्ट में बदलने के लिए एक प्रारूप को परिभाषित करता है जिसे किसी भी डॉक-सक्षम मशीन में स्थानांतरित किया जा सकता है, और इस गारंटी के साथ वहां निष्पादित किया जाता है कि एप्लिकेशन के संपर्क में आने वाला वातावरण समान होगा। Lxc, सैंडबॉक्सिंग को लागू करता है, जो कि पोर्टेबल परिनियोजन के लिए एक महत्वपूर्ण पूर्व-आवश्यकता है, लेकिन यह कि केवल पोर्टेबल परिनियोजन के लिए पर्याप्त नहीं है। यदि आपने मुझे कस्टम lxc कॉन्फ़िगरेशन में स्थापित अपने एप्लिकेशन की एक प्रति भेजी है, तो यह निश्चित रूप से मेरी मशीन पर नहीं चलेगा जिस तरह से यह आपके ऊपर करता है, क्योंकि यह आपकी मशीन के विशिष्ट कॉन्फ़िगरेशन से बंधा है: नेटवर्किंग, भंडारण, लॉगिंग, डिस्ट्रो आदि डॉकर इन मशीन-विशिष्ट सेटिंग्स के लिए एक अमूर्तता को परिभाषित करता है, ताकि सटीक एक ही डॉक कंटेनर चल सके - अपरिवर्तित - कई अलग-अलग मशीनों पर,
आवेदन केंद्रित। मशीनों के विपरीत, डॉकर अनुप्रयोगों की तैनाती के लिए अनुकूलित है । यह इसके एपीआई, यूजर इंटरफेस, डिजाइन दर्शन और प्रलेखन में परिलक्षित होता है। इसके विपरीत, lxc सहायक स्क्रिप्ट हल्के मशीनों के रूप में कंटेनरों पर ध्यान केंद्रित करते हैं - मूल रूप से सर्वर जो तेजी से बूट करते हैं और कम रैम की आवश्यकता होती है। हमें लगता है कि कंटेनर की तुलना में कहीं अधिक है।
स्वचालित निर्माण । डॉकर में डेवलपर्स के लिए अपने स्रोत कोड से एक कंटेनर को स्वचालित रूप से इकट्ठा करने के लिए एक उपकरण शामिल है, आवेदन निर्भरता, निर्माण उपकरण, पैकेजिंग आदि पर पूर्ण नियंत्रण के साथ, वे मेक, मावेन, शेफ, कठपुतली, नमक, डेबियन पैकेज, रैम्स, स्रोत का उपयोग करने के लिए स्वतंत्र हैं। मशीनों के विन्यास पर ध्यान दिए बिना तारबोल या उपरोक्त किसी भी संयोजन को ।
संस्करण। डॉकर में एक कंटेनर के क्रमिक संस्करणों को ट्रैक करने, संस्करणों के बीच के अंतर का निरीक्षण करने, नए संस्करण बनाने, वापस रोल करने आदि के लिए गिट जैसी क्षमताएं शामिल हैं। इतिहास में यह भी शामिल है कि एक कंटेनर को किस तरह इकट्ठा किया गया था और किसके द्वारा, इसलिए आपको उत्पादन सर्वर से पूर्ण पता लगाने की क्षमता मिलती है। वापस ऊपर की ओर डेवलपर के लिए सभी रास्ते। डॉकर भी "अपलोड पुल" के समान वृद्धिशील अपलोड और डाउनलोड को लागू करता है, इसलिए एक कंटेनर के नए संस्करणों को केवल भेजने के अंतर द्वारा स्थानांतरित किया जा सकता है।
घटक पुन: उपयोग। अधिक विशिष्ट घटकों को बनाने के लिए किसी भी कंटेनर का उपयोग "आधार छवि" के रूप में किया जा सकता है। यह मैन्युअल रूप से या स्वचालित निर्माण के हिस्से के रूप में किया जा सकता है। उदाहरण के लिए आप आदर्श अजगर पर्यावरण तैयार कर सकते हैं, और इसे 10 विभिन्न अनुप्रयोगों के लिए आधार के रूप में उपयोग कर सकते हैं। आपका आदर्श पोस्टग्रैक्स्ल सेटअप आपके भविष्य की सभी परियोजनाओं के लिए फिर से इस्तेमाल किया जा सकता है। और इसी तरह।
साझा करना। डॉकटर की एक सार्वजनिक रजिस्ट्री ( https://registry.hub.docker.com/ ) तक पहुंच है, जहां हजारों लोगों ने उपयोगी कंटेनर अपलोड किए हैं: रेडिस, काउचडब से कुछ भी, irc बाउंसरों को पोस्ट सर्वर के आधार छवियों के लिए अप करने के लिए रेल सर्वरों को पोस्ट करने के लिए पोस्टर्स तक पहुंचता है विभिन्न विकृतियों। रजिस्ट्री में डॉकटर टीम द्वारा बनाए गए उपयोगी कंटेनरों का एक आधिकारिक "मानक पुस्तकालय" भी शामिल है। रजिस्ट्री स्वयं ओपन-सोर्स है, इसलिए कोई भी निजी कंटेनरों को स्टोर करने और स्थानांतरित करने के लिए अपनी स्वयं की रजिस्ट्री को तैनात कर सकता है, उदाहरण के लिए आंतरिक सर्वर की तैनाती।
उपकरण पारिस्थितिकी तंत्र। डॉकर कंटेनर के निर्माण और तैनाती को स्वचालित और अनुकूलित करने के लिए एक एपीआई को परिभाषित करता है। अपनी क्षमताओं का विस्तार करने के लिए डॉकटर के साथ एकीकरण करने के लिए बड़ी संख्या में उपकरण हैं। पीएएस जैसी तैनाती (डॉक्यू, डेस, फ्लिन), मल्टी-नोड ऑर्केस्ट्रेशन (मेस्ट्रो, नमक, मेसो, ओपनस्टैक नोवा), प्रबंधन डैशबोर्ड (डोकर-यूआई, ओपनस्टोन क्षितिज, शिपयार्ड), कॉन्फ़िगरेशन प्रबंधन (शेफ, कठपुतली), निरंतर एकीकरण। (jenkins, strider, travis), आदि डॉकटर तेजी से कंटेनर आधारित टूलींग के मानक के रूप में खुद को स्थापित कर रहा है।
आशा है कि ये आपकी मदद करेगा!
आइए डॉकटर की तकनीकी विशेषताओं की सूची पर एक नज़र डालें , और यह जांचें कि एलएक्ससी द्वारा कौन सी सुविधाएं प्रदान की गई हैं और कौन सी नहीं हैं।
1) फाइलसिस्टम अलगाव : प्रत्येक प्रक्रिया कंटेनर पूरी तरह से अलग रूट फाइल सिस्टम में चलता है।
सादे एलएक्ससी के साथ प्रदान किया गया।
2) संसाधन अलगाव : सीपीयू और मेमोरी जैसे सिस्टम संसाधनों को प्रत्येक प्रक्रिया कंटेनर में अलग से आवंटित किया जा सकता है, cgroups का उपयोग कर।
सादे एलएक्ससी के साथ प्रदान किया गया।
3) नेटवर्क अलगाव : प्रत्येक प्रक्रिया कंटेनर अपने स्वयं के नेटवर्क नेमस्पेस में चलती है, जिसमें एक वर्चुअल इंटरफ़ेस और स्वयं का आईपी पता होता है।
सादे एलएक्ससी के साथ प्रदान किया गया।
4) कॉपी-ऑन-राइट : रूट फाइलसिस्टम को कॉपी-ऑन-राइट का उपयोग करके बनाया जाता है, जो तैनाती को बहुत तेज, मेमोरी-सस्ते और डिस्क-सस्ते बनाता है।
यह एएफएफएस द्वारा प्रदान किया गया है, एक यूनियन फाइल सिस्टम जो डॉकर पर निर्भर करता है। आप LXC के साथ मैन्युअल रूप से AUFS सेट कर सकते हैं, लेकिन डॉकर इसे एक मानक के रूप में उपयोग करता है।
5) लॉगिंग : प्रत्येक प्रक्रिया कंटेनर के मानक धाराओं (stdout / stderr / stdin) को एकत्र किया जाता है और वास्तविक समय या बैच पुनर्प्राप्ति के लिए लॉग इन किया जाता है।
डॉकर यह प्रदान करता है।
6) परिवर्तन प्रबंधन : एक कंटेनर की फाइलसिस्टम में परिवर्तन एक नई छवि में किया जा सकता है और अधिक कंटेनर बनाने के लिए फिर से उपयोग किया जा सकता है। कोई टेम्प्लेटिंग या मैनुअल कॉन्फ़िगरेशन की आवश्यकता नहीं है।
"टेंपलेटिंग या मैनुअल कॉन्फ़िगरेशन" एलएक्ससी का एक संदर्भ है, जहां आपको इन दोनों चीजों के बारे में जानने की आवश्यकता होगी। डॉकटर आपको एलएक्ससी कॉन्फ़िगरेशन के बारे में सीखे बिना, वर्चुअल मशीन के इलाज के लिए उपयोग किए जाने वाले तरीके से कंटेनरों का इलाज करने की अनुमति देता है।
7) इंटरएक्टिव शेल : डॉकटर एक छद्म टीटी आवंटित कर सकता है और किसी भी कंटेनर के मानक इनपुट के साथ संलग्न कर सकता है, उदाहरण के लिए एक फेंकने वाला इंटरैक्टिव शेल चलाने के लिए।
LXC पहले से ही यह प्रदान करता है।
मैंने केवल एलएक्ससी और डॉकर के बारे में सीखना शुरू किया, इसलिए मैं किसी भी सुधार या बेहतर उत्तर का स्वागत करूंगा।
unshare
टूल (या सीधे clone()
सीसॉल) के साथ उपयोग करना आसान बनाता है । इसी तरह, डॉकर उन चीजों को इस्तेमाल करना आसान बनाता है (और मेज पर कई और सुविधाएँ लाता है, जैसे छवियों को आगे बढ़ाने / खींचने की क्षमता)। मेरा 2 सी।
update-index
और read-tree
तरह परिचित उपकरण के बिना, add
, commit
, और merge
। Docker LXC के "प्लंबिंग" के ऊपर "पोर्सिलेन" की वह परत प्रदान करता है, जिससे आप उच्च स्तर की अवधारणाओं के साथ काम कर सकते हैं और निम्न-स्तरीय विवरणों के बारे में कम चिंता कर सकते हैं।
उपरोक्त पोस्ट और उत्तर तेजी से दिनांकित हो रहे हैं क्योंकि LXD का विकास LXC को बढ़ाता है । हाँ, मुझे पता है कि डॉकर अभी भी खड़ा नहीं है।
LXD अब LXC कंटेनर छवियों के लिए एक रिपॉजिटरी को लागू करता है जिसे एक उपयोगकर्ता पुश या पुल टू योगदान या पुन: उपयोग कर सकता है।
LXD के लिए LXD की रीस्ट एपीआई अब बहुत सरल कमांड सिंटैक्स का उपयोग करके LXC कंटेनरों के स्थानीय और दूरस्थ निर्माण / परिनियोजन / प्रबंधन को सक्षम बनाती है ।
LXD की मुख्य विशेषताएं हैं:
नहीं है NCLXD ओपनस्टैक अभी प्लगइन ओपनस्टैक की इजाजत दी तैनात करने के लिए उपयोग करने के लिए LXD / बजाय केवीएम का उपयोग कर, VMware आदि की ओपनस्टैक में VMs के रूप में LXC कंटेनर का प्रबंधन
हालांकि, NCLXD पारंपरिक HW VMs और LXC VMs के मिश्रण के हाइब्रिड क्लाउड को भी सक्षम बनाता है।
OpenStack nclxd प्लगइन समर्थित सुविधाओं की एक सूची में शामिल हैं:
stop/start/reboot/terminate container
Attach/detach network interface
Create container snapshot
Rescue/unrescue instance container
Pause/unpause/suspend/resume container
OVS/bridge networking
instance migration
firewall support
जब तक उबंटू 16.04 अप्रैल 2016 में जारी किया जाता है, तब तक इसमें ब्लॉक डिवाइस सपोर्ट, लाइव-माइग्रेशन सपोर्ट जैसे अतिरिक्त कूल फीचर होंगे ।
डॉकर्स उन छवियों का उपयोग करते हैं जो परतों में निर्मित होती हैं। यह पोर्टेबिलिटी, शेयरिंग, वर्जनिंग और अन्य फीचर्स के मामले में बहुत कुछ जोड़ता है। इन चित्रों को पोर्ट या ट्रांसफ़र करना बहुत आसान है और चूंकि वे परतों में हैं, इसलिए बाद के संस्करणों में बदलाव पिछली परतों पर परतों के रूप में जोड़े जाते हैं। इसलिए, कई बार पोर्ट करते समय आपको बेस लेयर को पोर्ट करने की आवश्यकता नहीं होती है। डॉकर्स में कंटेनर होते हैं जो इन चित्रों को निष्पादन के वातावरण के साथ चलाते हैं, वे नए संस्करण के रूप में परिवर्तन जोड़ते हैं जो आसान संस्करण नियंत्रण प्रदान करते हैं।
इसके अलावा डॉकर हब हजारों सार्वजनिक चित्रों के साथ एक अच्छी रजिस्ट्री है, जहां आप उन छवियों को पा सकते हैं जिनमें ओएस और अन्य सॉफ्टवेअर स्थापित हैं। तो, आप अपने आवेदन के लिए एक बहुत अच्छा सिर शुरू कर सकते हैं।
इस पिथियर को रखने के लिए, यह पहले से ही पूछा गया है और ऊपर उत्तर दिया गया है ।
हालांकि मैं वापस कदम रखूंगा और इसे थोड़ा अलग तरीके से जवाब दूंगा, डॉक इंजन खुद अपने एक एक्स्ट्रा के रूप में ऑर्केस्ट्रेशन जोड़ता है और यह विघटनकारी हिस्सा है। एक बार जब आप कई कंटेनर इंजनों में 'कहीं' कंटेनर के संयोजन के रूप में एक ऐप चलाना शुरू करते हैं तो यह वास्तव में रोमांचक हो जाता है। मजबूत, क्षैतिज स्केलिंग, अंतर्निहित हार्डवेयर से पूरी तरह से अमूर्त, मैं पर और पर जा सकता है ...
इसका न केवल डॉकटर जो आपको यह देता है, वास्तव में डी वास्तविक कंटेनर ऑर्केस्ट्रेशन मानक कुबेरनेट्स है जो बहुत सारे स्वादों में आता है, एक डॉकटर एक, लेकिन ओपनशिफ्ट, सूस, एज़्योर, एडब्ल्यूएस ...
फिर K8S के नीचे वैकल्पिक कंटेनर इंजन हैं; दिलचस्प हैं डॉकटर और CRIO - हाल ही में निर्मित, डेमलेस, जिसका उद्देश्य विशेष रूप से कुबेरनेट्स या अपरिपक्व के लिए एक कंटेनर इंजन के रूप में है। इसके बीच प्रतिस्पर्धा है कि मुझे लगता है कि कंटेनर इंजन के लिए वास्तविक दीर्घकालिक विकल्प होगा।