डॉकर नेटवर्किंग - एक दूसरे के साथ संवाद करने वाले कंटेनरों का पता लगाएं



कंटेनर नेटवर्क मॉडल पर एक समझ के साथ डॉक नेटवर्किंग कैपबिलिटी के बारे में सभी जानें और इसे हैंड्स-ऑन के साथ लागू करें।

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

डॉकर नेटवर्किंग पर इस ब्लॉग में, आप निम्नलिखित विषयों से गुजरेंगे:





डॉकटर क्या है?

डॉकटर को समझने के लिए, आपको इतिहास के बारे में जानने की जरूरत है कि पहले कैसे आवेदन किए गए थे और फिर अब कंटेनरों का उपयोग करके आवेदन कैसे तैनात किए जा रहे हैं।

पुराने रास्ते और नए तरीके से अनुप्रयोगों की तैनाती - डोकर नेटवर्किंग - एडुर्का



जैसा कि आप ऊपर दिए गए आरेख में देख सकते हैं, पुराने तरीके से होस्ट पर एप्लिकेशन थे।तो, उस ऑपरेटिंग सिस्टम में मौजूद लाइब्रेरियों को n की संख्या में साझा किया जाता है।लेकिन, कंटेनरीकरण के साथ, ऑपरेटिंग सिस्टम में एक कर्नेल होगा जो केवल एक चीज है जो सभी अनुप्रयोगों के बीच आम है।इसलिए, आवेदन एक-दूसरे के पुस्तकालयों तक नहीं पहुंच सकते।

इसलिए, डॉकटर सरल शब्दों में, अनुप्रयोगों को विकसित करने, शिपिंग करने और चलाने के लिए एक खुला मंच है, जिसकी सहायता से उपयोगकर्ता को इन्फ्रास्ट्रक्चर से अलग अनुप्रयोगों के लिए सक्षम किया जा सकता है। कंटेनर सॉफ्टवेयर जल्दी से वितरित करने के लिए।

तो, ये कंटेनर विभिन्न स्थितियों में एक दूसरे के साथ कैसे संवाद करते हैं?



खैर, यह डॉकर नेटवर्किंग के माध्यम से आता है।

डॉकर नेटवर्किंग

इससे पहले कि मैं डॉकर नेटवर्किंग में गहरी डुबकी लगाऊं, मैं आपको डॉकर के वर्कफ़्लो को दिखाऊंगा।

जैसा कि आप ऊपर दिए गए चित्र में देख सकते हैं। एक डेवलपर एक कोड लिखता है जो एप्लिकेशन आवश्यकताओं या एक आसान में निर्भरता को डोकर फाइल लिखने के लिए निर्धारित करता है और यह डॉकर फाइल डॉकर छवियां उत्पन्न करता है। तो, एक विशेष अनुप्रयोग के लिए जो भी निर्भरताएं आवश्यक हैं, वे इस छवि में मौजूद हैं।

अब, डॉकर कंटेनर डोकर छवि के रनटाइम उदाहरण के अलावा कुछ भी नहीं हैं। ये चित्र डॉकर हब (डॉक इमेज के लिए गिट रिपॉजिटरी) पर अपलोड किए गए हैं, जिसमें सार्वजनिक / निजी रिपॉजिटरी शामिल हैं।

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

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

आपको क्या लगता है कि डॉकर नेटवर्किंग के लक्ष्य क्या हैं?

गोदी नेटवर्किंग के लक्ष्य

लचीलापन - एक दूसरे से संवाद करने के लिए विभिन्न प्लेटफार्मों पर किसी भी संख्या में अनुप्रयोगों को सक्षम करके डॉकर लचीलापन प्रदान करता है।

क्रॉस-प्लेटफ़ॉर्म - डॉकर को आसानी से क्रॉस-प्लेटफ़ॉर्म में उपयोग किया जा सकता है जो डोकर झुंड समूहों की मदद से विभिन्न सर्वरों पर काम करता है।

स्केलेबिलिटी - डॉकर पूरी तरह से वितरित नेटवर्क है, जो प्रदर्शन को सुनिश्चित करते हुए अनुप्रयोगों को बढ़ने और व्यक्तिगत रूप से स्केल करने में सक्षम बनाता है।

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

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

सहयोग - डॉकर आउट-ऑफ-द-बॉक्स समर्थन प्रदान करता है। तो, डॉकर एंटरप्राइज संस्करण का उपयोग करने की क्षमता और सभी कार्यक्षमता को बहुत आसान और सीधा प्राप्त करने के लिए, डॉकर प्लेटफॉर्म का उपयोग करने के लिए बहुत आसान बनाता है।

उपरोक्त लक्ष्यों को सक्षम करने के लिए, आपको कंटेनर नेटवर्क मॉडल के रूप में जाना जाना चाहिए।

विभिन्न DevOps चरणों का अन्वेषण करना चाहते हैं?

कंटेनर नेटवर्क मॉडल (CNM)

इससे पहले कि मैं आपको बताऊं कि वास्तव में एक कंटेनर नेटवर्क मॉडल क्या है, मैं आपको लिब्न नेटवर्क्स के बारे में संक्षिप्त जानकारी देता हूं जो आपको CNM को समझने से पहले आवश्यक है।

लिब्न नेटवर्क एक खुला स्रोत डॉकर पुस्तकालय है जो सीएनएम को बनाने वाली सभी प्रमुख अवधारणाओं को लागू करता है।

इसलिए, कंटेनर नेटवर्क मॉडल (CNM) कई नेटवर्क ड्राइवरों का उपयोग कर कंटेनरों के लिए नेटवर्किंग प्रदान करने के लिए आवश्यक चरणों को मानकीकृत करता है। CNM को नेटवर्क कॉन्फ़िगरेशन को संग्रहीत करने के लिए कंसोल की तरह वितरित कुंजी-मूल्य संग्रह की आवश्यकता होती है।

CNM में IPAM प्लगइन्स और नेटवर्क प्लगइन्स के लिए इंटरफेस है।

IPAM प्लगइन API का उपयोग एड्रेस पूल बनाने / डिलीट करने के लिए किया जाता है और कंटेनर IP एड्रेस को आवंटित / डिलीट करने के लिए किया जाता है, जबकि नेटवर्क प्लगइन API का उपयोग नेटवर्क बनाने / डिलीट करने और नेटवर्क से कंटेनरों को जोड़ने / हटाने के लिए किया जाता है।

एक CNM ने मुख्य रूप से 5 वस्तुओं पर बनाया है: नेटवर्क नियंत्रक, ड्राइवर, नेटवर्क, समापन बिंदु और सैंडबॉक्स।

कंटेनर नेटवर्क मॉडल ऑब्जेक्ट

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

चालक: नेटवर्क का मालिक है और विभिन्न उपयोग-मामलों और परिनियोजन परिदृश्यों को पूरा करने के लिए भाग लेने वाले कई ड्राइवर होने से नेटवर्क के प्रबंधन के लिए जिम्मेदार है।

नेटवर्क: एक ही नेटवर्क से संबंधित एंडपॉइंट के समूह के बीच कनेक्टिविटी प्रदान करता है और बाकी से अलग करता है। इसलिए, जब भी कोई नेटवर्क बनाया जाता है या अपडेट किया जाता है, तो संबंधित ड्राइवर को घटना की सूचना दी जाएगी।

समापन बिंदु: एक नेटवर्क में अन्य कंटेनरों द्वारा प्रदान की जाने वाली अन्य सेवाओं के साथ एक नेटवर्क में एक कंटेनर द्वारा उजागर सेवाओं के लिए कनेक्टिविटी प्रदान करता है। एक एंडपॉइंट एक सेवा का प्रतिनिधित्व करता है और जरूरी नहीं कि एक विशेष कंटेनर हो, एंडपॉइंट के पास एक क्लस्टर के भीतर एक वैश्विक गुंजाइश है।

सैंडबॉक्स: जब उपयोगकर्ता किसी नेटवर्क पर एक समापन बिंदु बनाने का अनुरोध करते हैं तो बनाया गया। एक सैंडबॉक्स में कंटेनर के नेटवर्क कॉन्फ़िगरेशन जैसे आईपी-पता, मैक-पता, मार्गों, डीएनएस का प्रतिनिधित्व करने वाले विभिन्न नेटवर्क से जुड़े कई एंडपॉइंट हो सकते हैं।

तो, वे CNM की 5 मुख्य वस्तुएं थीं।

अब, मैं आपको विभिन्न नेटवर्क ड्राइवरों को डोकर नेटवर्किंग में शामिल करने के बारे में बताता हूं।

एक अगले स्तर तक सीखने के लिए DevOps लेना चाहते हैं?

नेटवर्क ड्राइवर

मुख्य रूप से 5 नेटवर्क ड्राइवर हैं: ब्रिज, होस्ट, कोई नहीं, ओवरले, मैकवलन

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

मेज़बान : यह ड्राइवर होस्ट के नेटवर्किंग का सीधे उपयोग करने के लिए डॉक होस्ट और डॉक कंटेनर के बीच नेटवर्क अलगाव को हटा देता है। तो इसके साथ, आप एक ही होस्ट पर एक ही पोर्ट पर कई वेब कंटेनर नहीं चला पाएंगे, क्योंकि पोर्ट अब होस्ट नेटवर्क में सभी कंटेनरों के लिए सामान्य है।

कोई नहीं : इस तरह के नेटवर्क में कंटेनर किसी भी नेटवर्क से जुड़े नहीं होते हैं और बाहरी नेटवर्क या अन्य कंटेनरों तक उनकी पहुंच नहीं होती है। इसलिए, इस नेटवर्क का उपयोग तब किया जाता हैआप कंटेनर पर नेटवर्किंग स्टैक को पूरी तरह से अक्षम करना चाहते हैं औरकेवल एक लूपबैक डिवाइस बनाएं।

ओवरले : एक आंतरिक निजी नेटवर्क बनाता है जो झुंड क्लस्टर में भाग लेने वाले सभी नोड्स में फैला हुआ है। इसलिए, ओवरले नेटवर्क एक झुंड सेवा और एक स्टैंडअलोन कंटेनर के बीच, या दो डॉकलेन कंटेनरों के बीच विभिन्न डॉकर डेमोंस पर संचार की सुविधा प्रदान करते हैं।

मैकवलन: आपको एक कंटेनर में मैक पते को असाइन करने की अनुमति देता है, जिससे यह आपके नेटवर्क पर एक भौतिक उपकरण के रूप में दिखाई देता है। फिर, डॉकर डेमॉन अपने मैक पते द्वारा कंटेनरों को ट्रैफ़िक देता है। डॉकनर होस्ट के नेटवर्क स्टैक के माध्यम से रूट किए जाने के बजाय, जब आप सीधे भौतिक नेटवर्क से जुड़े होने की उम्मीद करते हैं, तो Macvlan ड्राइवर सबसे अच्छा विकल्प है।

ठीक है, इसलिए डॉकर नेटवर्किंग को समझने के लिए आवश्यक सभी सिद्धांत थे। अब, मैं आगे बढ़ता हूं और आपको व्यावहारिक रूप से दिखाता हूं कि नेटवर्क कैसे बनाए जाते हैं और कंटेनर एक दूसरे के साथ संवाद करते हैं।

व्यावहारिक व क्रियाशील

इसलिए, इस धारणा के साथ कि आप सभी ने अपने सिस्टम पर डॉकर स्थापित किया है, मेरे पास दिखाने के लिए एक परिदृश्य है।

मान लीजिए कि आप पाठ्यक्रम का नाम और पाठ्यक्रम आईडी स्टोर करना चाहते हैं, जिसके लिए आपको एक वेब एप्लिकेशन की आवश्यकता होगी। असल में, आपको वेब एप्लिकेशन के लिए एक कंटेनर की आवश्यकता होती है और बैकएंड के लिए आपको MySQL के रूप में एक और कंटेनर की आवश्यकता होती है, जिसे MySQL कंटेनर को वेब एप्लिकेशन कंटेनर से जोड़ा जाना चाहिए।

मैं कैसे उपर्युक्त उदाहरण को व्यावहारिक रूप से निष्पादित करता हूं।

इसमें शामिल कदम:

  • डॉकर झुंड को एक झुंड क्लस्टर बनाने के लिए आरम्भ करें।
  • एक ओवरले नेटवर्क बनाएँ
  • वेब एप्लिकेशन और MySQL दोनों के लिए सेवाएं बनाएं
  • नेटवर्क के माध्यम से एप्लिकेशन कनेक्ट करें

आएँ शुरू करें!

स्टेप 1: मशीन पर डॉकर झुंड को इनिशियलाइज़ करें।

docker swarm init - विशेषाधिकारों का जोड़ 192.168.56.101

–डिजाइन-ऐड-फ़्रेग प्रबंधक पते को 192.168.56.101 के रूप में प्रकाशित करने के लिए कॉन्फ़िगर करता है। झुंड के अन्य नोड्स आईपी पते पर प्रबंधक तक पहुंचने में सक्षम होने चाहिए।

चरण 2: अब, यदि आप कार्यकर्ता नोड में इस प्रबंधक नोड में शामिल होना चाहते हैं, तो उस लिंक को कॉपी करें जो आपको श्रमिक नोड पर झुंड को इनिशियलाइज़ करने पर मिलता है।
चरण 3: एक ओवरले नेटवर्क बनाएं।

docker नेटवर्क -d ओवरले myoverlaynetwork

जहां myoverlay नेटवर्क नाम है और -d बैकग्राउंड में डॉकर डेमन को चलाने में सक्षम बनाता है।

इस मे कया है__

कदम 4.1: एक सेवा webapp1 बनाएं और झुंड क्लस्टर पर इस सेवा को तैनात करने के लिए आपके द्वारा बनाए गए नेटवर्क का उपयोग करें।

docker service create --name webapp1 -d --network myoverlaynetwork -p 8001: 80 hshar / webapp

जहाँ-तहाँपोर्ट फ़ॉरवर्डिंग के लिए है,हशरडॉकर हब पर खाता नाम है, और वेबर डॉकिंग हब पर पहले से मौजूद वेब एप्लिकेशन का नाम है।

चरण 4.2: अब, जांचें कि सेवा बनाई गई है या नहीं।

docker सेवा एल.एस.

चरण 5.1: अब, एक सेवा MySQL बनाएं और उस नेटवर्क का उपयोग करें जिसे आपने सेवा को झुंड क्लस्टर पर तैनात करने के लिए बनाया है।

docker service create --name mysql -d --network myoverlaynetwork -p 3306: 3306 hshar / mysql: 5.5


चरण 5.2: अब, जांचें कि सेवा बनाई गई है या नहीं।

docker सेवा एल.एस.

चरण 6.1: उसके बाद, जांचें कि कौन सा कंटेनर आपके मास्टर नोड पर चल रहा है और hshar / webapp कंटेनर में जाता है।

docker ps

चरण 6.2: तो, आप देख सकते हैं कि प्रबंधक नोड पर केवल वेबएप सेवा है। तो, वेबैप कंटेनर में जाएं।

docker निष्पादित -it container_id bash नैनो var / www / html / index.php

Docker ps कमांड आपके दोनों कंटेनरों को उनके संबंधित कंटेनर आईडी के साथ सूचीबद्ध करेगा। दूसरा कमांड उस कंटेनर को एक इंटरैक्टिव मोड में सक्षम करेगा।

चरण 7: अब, लोकलहोस्ट से $ servername को mysql में और 'पासवर्ड' से 'edureka' में बदलें, और आवश्यक सभी डेटाबेस विवरणों को भी बदलें और कीबोर्ड शॉर्टकट Ctrl + x का उपयोग करके और उसके बाद अपनी index.php फ़ाइल को सहेजें। y को बचाने के लिए, और एंटर दबाएँ।

चरण 8: अब, mysql कंटेनर में जाएं जो दूसरे नोड पर चल रहा है।

docker निष्पादित -it container_id बैश

चरण 9: एक बार जब आप mysql कंटेनर के अंदर जाते हैं, तो MySQL में डेटाबेस का उपयोग करने के लिए नीचे दिए गए कमांड दर्ज करें।

चरण 9.1: Mysql कंटेनर का उपयोग करने के लिए एक पहुंच प्राप्त करें।

mysql -u root -pedureka

कहां-कहां उपयोगकर्ता का प्रतिनिधित्व करता है और -p आपके मशीन का पासवर्ड है।

चरण 9.2: Mysql में एक डेटाबेस बनाएँ जिसका उपयोग webapp1 से डेटा प्राप्त करने के लिए किया जाएगा।

DATABASE हैंडऑन बनाएं

चरण 9.3: बनाए गए डेटाबेस का उपयोग करें।

उपयोग करें

चरण 9.4: इस डेटाबेस में एक तालिका बनाएं, जिसका उपयोग webapp1 से डेटा प्राप्त करने के लिए किया जाएगा।

TATE course_details (course_name VARCHAR (10), course_id VARCHAR (11))

चरण 9.5: अब, कमांड का उपयोग करके MySQL और कंटेनर से बाहर निकलें बाहर जाएं

चरण 10: अपने ब्राउज़र पर जाएं और पते को दर्ज करें लोकलहोस्ट: 8001 / index.php । यह आपके वेब एप्लिकेशन को खोल देगा। अब, पाठ्यक्रमों का विवरण दर्ज करें और क्लिक करें जिज्ञासा दर्ज करें

चरण 11: एक बार जब आप सबमिट क्वेरी पर क्लिक करते हैं, तो उस नोड पर जाएं जिसमें आपकी MySQL सेवा चल रही है और फिर कंटेनर के अंदर जाएं।

docker निष्पादित -it container_id bash mysql -u root -pedureka USE HandsOn SHOW तालिकाओं का चयन करें course_details से

यह आपको उन सभी पाठ्यक्रमों का आउटपुट दिखाएगा, जिनमें से आपने विवरणों को भरा है।

यहाँ, मैं अपने डॉकर नेटवर्किंग ब्लॉग को समाप्त करता हूँ। मुझे उम्मीद है कि आपने इस पद का आनंद लिया है। आप देख सकते हैं अन्य ब्लॉग श्रृंखला में भी, जो डॉकर की मूल बातों से संबंधित है।

यदि आपको यह डॉकटर कंटेनर ब्लॉग प्रासंगिक लगता है, तो देखें Edureka द्वारा, 450,000 से अधिक संतुष्ट शिक्षार्थियों के नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी, जो दुनिया भर में फैली हुई है। Edureka DevOps प्रमाणन प्रशिक्षण पाठ्यक्रम शिक्षार्थियों को विभिन्न DevOps प्रक्रियाओं में विशेषज्ञता हासिल करने में मदद करता है और कठपुतली, जेनकींस, डॉकर, नागिओस, Ansible, और GIT जैसे कई कदमों को SDLC में स्वचालित करने के लिए।

DevOps में प्रमाणन के लिए खोज रहे हैं?

मेरे लिए एक सवाल है? कृपया टिप्पणी अनुभाग में इसका उल्लेख करें और मैं आपके पास वापस आऊंगा।