सामग्री तालिका

डॉकर पैरामीटर्स - सर्वोत्तम पैरामीटर्स!

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

डॉकर पैरामीटर क्या है?

डॉकर पैरामीटर एक मान है जो डॉकर कमांड को दिया जाता है। यह मान या तो पर्यावरण चर के रूप में या सीधे कमांड में ही निर्दिष्ट किया जा सकता है।

विभिन्न प्रकार के डॉकर पैरामीटर

डॉकर रन कमांड में कई अलग-अलग विकल्प और पैरामीटर हैं जिन्हें आप अपनी आवश्यकताओं के अनुरूप अनुकूलित कर सकते हैं। इस में लेख हम विभिन्न प्रकार के डॉकर मापदंडों पर ध्यान केंद्रित करेंगे।

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

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

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

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

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

सर्वोत्तम डॉकर पैरामीटर

सर्वोत्तम डॉकर पैरामीटर

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

-नाम: यह पैरामीटर कंटेनर को एक नाम देता है। यदि आप कोई नाम निर्दिष्ट नहीं करते हैं, तो एक यादृच्छिक नाम उत्पन्न हो जाएगा। नाम अद्वितीय होना चाहिए ताकि आप कंटेनर को आसानी से पहचान सकें।

–डिटैच / -डी: यह पैरामीटर कंटेनर को पृष्ठभूमि में चलाता है। डिफ़ॉल्ट रूप से, कंटेनर अग्रभूमि में चलता है और कमांड लाइन तब तक अवरुद्ध रहती है जब तक कि कंटेनर बाहर नहीं निकल जाता या Ctrl+C के साथ रद्द नहीं हो जाता। यदि आप कंटेनर को पृष्ठभूमि में चलाना चाहते हैं, तो आपको -डिटैच पैरामीटर निर्दिष्ट करना चाहिए।

–publish / -p: यह पैरामीटर कंटेनर पोर्ट और होस्ट पोर्ट के बीच संबंध स्थापित करता है। यदि आप कनेक्ट नहीं करते हैं, तो आप बाहर से कंटेनर के बंदरगाह तक नहीं पहुंच पाएंगे। यदि आप एकाधिक पोर्ट प्रकाशित करना चाहते हैं, तो आप -प्रकाशित पैरामीटर को कई बार निर्दिष्ट कर सकते हैं।

-इंटरएक्टिव / -आई: यह पैरामीटर सुनिश्चित करता है कि कंटेनर अग्रभूमि में चलता है और कमांड लाइन तब तक अवरुद्ध नहीं होती जब तक कि कंटेनर बाहर नहीं निकल जाता या Ctrl + C के साथ निरस्त नहीं हो जाता।

–tty / -t: यह पैरामीटर कंटेनर में एक टर्मिनल का अनुकरण करता है। इस पैरामीटर को निर्दिष्ट करने से आप कंटेनर में टाइप कर सकते हैं और कमांड निष्पादित कर सकते हैं। यदि यह पैरामीटर निर्दिष्ट नहीं किया गया था, तो कंटेनर में टाइप करना या कमांड निष्पादित करना संभव नहीं होगा।

-आरएम: यह पैरामीटर कंटेनर से बाहर निकलने के बाद उसे हटा देता है। यदि आप यह पैरामीटर निर्दिष्ट नहीं करते हैं, तो कंटेनर बरकरार रहेगा और बाद में पुनर्स्थापित किया जा सकता है।

-वॉल्यूम / -v: यह पैरामीटर होस्ट फ़ोल्डर और कंटेनर फ़ोल्डर के बीच संबंध बनाता है। जब आप कनेक्ट होते हैं, तो आप होस्ट फ़ोल्डर से फ़ाइलों को कंटेनर में कॉपी कर सकते हैं और इसके विपरीत भी।

–workdir / -w: यह पैरामीटर कंटेनर में कार्यशील निर्देशिका सेट करता है। डिफ़ॉल्ट रूप से कार्यशील निर्देशिका /root पर सेट होती है।

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

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

-होस्टनाम: जैसा कि नाम से पता चलता है, यह पैरामीटर कंटेनर का होस्टनाम सेट करता है। डिफ़ॉल्ट कंटेनर का नाम है, या यदि कोई -नाम निर्दिष्ट नहीं है तो एक यादृच्छिक नाम है।

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

-वॉल्यूम या -v: यह पैरामीटर होस्ट फ़ोल्डर और कंटेनर फ़ोल्डर के बीच संबंध बनाता है। जब आप कनेक्ट होते हैं, तो आप होस्ट फ़ोल्डर से फ़ाइलों को कंटेनर में कॉपी कर सकते हैं और इसके विपरीत भी।

डॉकर पैरामीटर के फायदे और नुकसान

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

एक अन्य लाभ यह है कि कुछ सुरक्षा कार्यों को डॉकर मापदंडों का उपयोग करके किसी एप्लिकेशन से भी जोड़ा जा सकता है। उदाहरण के लिए, यह सुनिश्चित किया जा सकता है कि केवल अधिकृत उपयोगकर्ता ही किसी एप्लिकेशन तक पहुंच सकते हैं।

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

डॉकर रन संदर्भ

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

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

ऑपरेटर विशेष विकल्प

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

-लॉग-स्तर : लॉगिंग स्तर सेट करता है। केवल ऑपरेटरों के पास अपनी स्थापना के लिए लॉगिंग को अनुकूलित करने के लिए इस विकल्प तक पहुंच है।

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

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

पृथक बनाम अग्रभूमि

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

यदि आप पृष्ठभूमि में एक कंटेनर चलाना चाहते हैं (अलग), तो आप इसे "-d" पैरामीटर के साथ कर सकते हैं। फिर कंटेनर को अपनी प्रक्रिया में निष्पादित किया जाता है और कंसोल का नियंत्रण होस्ट को वापस दे दिया जाता है।

कंटेनर की पहचान

कंटेनर आईडी डॉकर कंटेनर के लिए एक विशिष्ट पहचानकर्ता है। इसे docker ps कमांड का उपयोग करके देखा जा सकता है और यह आमतौर पर आठ अक्षर लंबा होता है। कंटेनर आईडी के पहले तीन अक्षर उस छवि की आईडी हैं जिसने कंटेनर बनाया है।

यूटीएस सेटिंग्स (-यूटीएस)

यूटीएस मोड निर्दिष्ट करता है कि एक कंटेनर को अपनी पहचान कैसे प्रबंधित करनी चाहिए। आमतौर पर, प्रत्येक कंटेनर को अपना स्वयं का यूआईडी और जीआईडी ​​मिलता है। हालाँकि, यह मोड हमेशा समझ में नहीं आता है, खासकर जब कई कंटेनर एक ही एक्सेस कर रहे हों डेटाबेस या अन्य संसाधनों तक पहुँचने की आवश्यकता है। इस स्थिति में, आप यूटीएस मोड को अक्षम कर सकते हैं ताकि सभी कंटेनरों में समान यूआईडी और जीआईडी ​​हो।

आईपीसी सेटिंग्स (-आईपीसी)

आईपीसी सेटिंग (-आईपीसी) कंटेनरों के बीच संचार के लिए एक सामान्य क्षेत्र का उपयोग करने की अनुमति देती है। यह दो या दो से अधिक कंटेनरों को समान फ़ाइलों और सॉकेट तक पहुंचने की अनुमति देता है। यदि आप आईपीसी सेटिंग निर्दिष्ट नहीं करते हैं, तो डॉकर संचार के लिए एक डिफ़ॉल्ट सीमा निर्धारित करेगा।

नेटवर्क सेटिंग्स

डॉकर में कुछ उपयोगी पैरामीटर हैं जिन्हें आपको जानना चाहिए। इनमें से एक पैरामीटर है -नेट। यह पैरामीटर निर्धारित करता है कि किसी विशिष्ट एप्लिकेशन के लिए नेटवर्क कैसे कॉन्फ़िगर किया गया है।

–नेट=होस्ट – यह विकल्प कंटेनर को सीधे होस्ट के नेटवर्क तक पहुंचने की अनुमति देता है। इसका मतलब है कि कंटेनर के पास सभी नेटवर्क सेवाओं तक पहुंच है (डीएनएस, HTTP, आदि) होस्ट द्वारा प्रदान किया गया।

–नेट=ब्रिज – यह विकल्प एक आंतरिक नेटवर्क ब्रिज कंटेनर बनाता है जो निर्दिष्ट कंटेनर को अन्य कंटेनरों और होस्ट के साथ संचार करने की अनुमति देता है। यह -नेट के लिए डिफ़ॉल्ट विकल्प है।

–नेट=कंटेनर:- यह विकल्प एक कंटेनर को दूसरे कंटेनर से कनेक्ट करने की अनुमति देता है जो समान नेटवर्किंग विकल्प का उपयोग करता है। उदाहरण के लिए, कोई दो कंटेनरों को एक साथ जोड़ने के लिए समान –नेट=ब्रिज विकल्प का उपयोग कर सकता है।

–नेट=कोई नहीं – यह विकल्प किसी कंटेनर के लिए नेटवर्किंग को अक्षम कर देता है। इस विकल्प का उपयोग करने वाले कंटेनर के पास नेटवर्क तक पहुंच नहीं है और इसलिए वह नेटवर्क सेवाओं का उपयोग नहीं कर सकता है।

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

$ डॉकर नेटवर्क मेरा नेटवर्क बनाएं

यह कमांड माय-नेटवर्क नामक एक नया नेटवर्क बनाता है। किसी कंटेनर को इस नेटवर्क से कनेक्ट करने के लिए, कोई -नेट विकल्प के साथ डॉकर रन कमांड का उपयोग कर सकता है:
$ डॉकर रन –नेट=माय-नेटवर्क…

किसी कंटेनर को हटाने के लिए आप docker rm कमांड का उपयोग कर सकते हैं:

$ डॉकर आरएम माय-कंटेनर

यह कमांड माय-कंटेनर कंटेनर को हटा देता है। किसी नेटवर्क को हटाने के लिए आप docker नेटवर्क आरएम कमांड का उपयोग कर सकते हैं:
$ डॉकर नेटवर्क आरएम माय-नेटवर्क

यह कमांड my-network नाम के नेटवर्क को हटा देता है।

पुनरारंभ नीतियां (-पुनः प्रारंभ करें)

डॉकर की पुनरारंभ नीति निर्दिष्ट करती है कि एक कंटेनर एक के बाद कैसे पुनरारंभ होता है Fehler पुनः प्रारंभ किया जाना चाहिए. पुनरारंभ विकल्प हैं:

–restart=no: कंटेनर पुनः आरंभ नहीं किया जाएगा।
–restart=always: कंटेनर को हमेशा पुनः आरंभ किया जाता है, भले ही वह सफाई से बंद किया गया हो।
-restart=on-failure: यदि कंटेनर a के साथ चल रहा है तो उसे पुनः प्रारंभ किया जाएगा Fehler ख़त्म हो गया था.
–restart=unless-stopted: कंटेनर को हमेशा पुनरारंभ किया जाता है जब तक कि इसे डॉकर स्टॉप कमांड के साथ मैन्युअल रूप से रोका नहीं गया हो।

बाहर निकलें स्थिति

निकास स्थिति एक कमांड या फ़ंक्शन द्वारा लौटाया गया मान है जो यह दर्शाता है कि कमांड या फ़ंक्शन सफलतापूर्वक पूरा हुआ या नहीं।

यदि कोई कमांड 0 की निकास स्थिति के साथ पूरा होता है, तो आमतौर पर इसका मतलब है कि कमांड सफल था। एक अलग निकास स्थिति का आमतौर पर मतलब होता है कि आदेश विफल हो गया।

विशिष्ट त्रुटि कोड उत्पन्न करने के लिए निकास स्थितियों का भी उपयोग किया जा सकता है। यदि आपके पास कोई विशिष्ट जानकारी है तो यह सहायक हो सकता है त्रुटियाँ ढूँढें और ठीक करें चाहना। उदाहरण के लिए, निकास 1 का उपयोग "फ़ाइल नहीं मिली" त्रुटि प्रदर्शित करने के लिए किया जा सकता है।

साफ़ करें (-आरएम)

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

सुरक्षा कॉन्फ़िगरेशन

डॉकर के साथ काम करते समय सुरक्षा कॉन्फ़िगरेशन एक बहुत ही महत्वपूर्ण पहलू है। यह अनुभाग इसके लिए कुछ सबसे महत्वपूर्ण मापदंडों को सूचीबद्ध करता है सुरक्षा डॉकर द्वारा प्रस्तुत किया गया।

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

डॉकर सुरक्षा के लिए सबसे महत्वपूर्ण मापदंडों में से एक "-कैप-ऐड" है। यह पैरामीटर आपको कुछ कर्नेल क्षमताओं को कंटेनर में पास करने की अनुमति देता है। यह आपको होस्ट सिस्टम की कुछ सुविधाओं तक पहुंच को नियंत्रित करने की अनुमति देता है, जिससे सुरक्षा बढ़ती है। उदाहरण के लिए, आप यह सुनिश्चित करने के लिए "-cap-add=NET_RAW" का उपयोग कर सकते हैं कि कोई कंटेनर नेटवर्क पैकेट को सूँघ नहीं सकता है।

एक अन्य महत्वपूर्ण पैरामीटर "-सुरक्षा-ऑप्ट" है। यह पैरामीटर आपको होस्ट सिस्टम की कुछ सुविधाओं तक पहुंच प्रतिबंधित करने की अनुमति देता है। उदाहरण के लिए, आप यह सुनिश्चित करने के लिए "-security-opt=apparmor:unconfined" का उपयोग कर सकते हैं कि AppArmor कंटेनर पर लागू नहीं है। इससे हमलावरों को एक बड़ा फायदा मिलता है क्योंकि वे अब AppArmor द्वारा प्रतिबंधित नहीं हैं।

एक अन्य बहुत महत्वपूर्ण पैरामीटर SELinux "-लेबल" पैरामीटर है। यह पैरामीटर आपको होस्ट सिस्टम की कुछ सुविधाओं तक पहुंच को नियंत्रित करने की अनुमति देता है। उदाहरण के लिए, "-लेबल = प्रकार के साथ:
कंटेनर_रनटाइम_टी" सुनिश्चित करें कि डॉकर कंटेनर पर SELinux लागू नहीं करता है। इससे हमलावरों को बड़ा फायदा मिलता है क्योंकि वे अब SELinux द्वारा प्रतिबंधित नहीं हैं।

अंतिम महत्वपूर्ण पैरामीटर "-विशेषाधिकार प्राप्त" है। यह पैरामीटर आपको होस्ट सिस्टम के सभी कार्यों तक पहुंच प्राप्त करने की अनुमति देता है। यह बहुत खतरनाक है और इसका उपयोग केवल तभी किया जाना चाहिए जब अत्यंत आवश्यक हो।

आज के लिए इतना ही! हमें उम्मीद है कि इस लेख से आपको मदद मिली होगी मूल बातें डॉकर को समझने के लिए.

एक init प्रक्रिया निर्दिष्ट करें

डॉकर डेमॉन एक निर्दिष्ट init प्रक्रिया को एक तर्क के रूप में स्वीकार करता है। यह प्रक्रिया कंटेनर में चलने वाली पहली प्रक्रिया है। यदि कोई init प्रक्रिया निर्दिष्ट नहीं है, तो डिफ़ॉल्ट init प्रक्रिया init का उपयोग किया जाता है।

निर्दिष्ट init प्रक्रिया को यह सुनिश्चित करना चाहिए कि कंटेनर में केवल एक ही प्रक्रिया चल रही है। जब एकाधिक प्रक्रियाएँ चल रही हों, तो अप्रत्याशित त्रुटियाँ हो सकती हैं। निर्दिष्ट इनिट प्रक्रिया को यह भी सुनिश्चित करना चाहिए कि कंटेनर बाहर निकलने पर ठीक से बंद हो जाए।

कस्टम cgroups निर्दिष्ट करें

यदि आप अपने एप्लिकेशन के लिए एक कस्टम सीग्रुप मेमोरी सीमा निर्धारित करना चाहते हैं, तो आप -सीग्रुप-मेमोरी ध्वज के साथ ऐसा कर सकते हैं। उदाहरण के लिए, यदि आप सीमा को 512MB पर सेट करना चाहते हैं:

–सीग्रुप-मेमोरी=”512एम”

मैं किसी कस्टम को कैसे कॉन्फ़िगर करूं? डीएनएस मेरे कंटेनरों के लिए सर्वर?

यदि आपके पास एक कस्टम DNS है सर्वर, आप इसे अपनी एप्लिकेशन विशिष्टता फ़ाइल या डीसीओएस मैराथन ऐप ऐड कमांड में सेट कर सकते हैं। यह उदाहरण दिखाता है कि DNS कैसे सेट करें सर्वर एप्लिकेशन विनिर्देश फ़ाइल का उपयोग करना:

{"आईडी": "/मेरी-सेवा", "डीएनएस": {“नेमसर्वर”: [“10.0.0.1” ] } }

यह उदाहरण दिखाता है कि DNS कैसे सेट करें सर्वर डीसीओएस मैराथन ऐप का उपयोग करके कमांड जोड़ें:
$ dcos मैराथन ऐप जोड़ें {"id": "/my-service", "डीएनएस": {“नेमसर्वर”: [“10.0.0.1” ] } }

के बारे में अधिक जानकारी के लिए डीएनएस, मैराथन दस्तावेज़ में DNS सेटिंग्स देखें।

मैं किसी कस्टम को कैसे कॉन्फ़िगर करूं? seaआरसीएच डोमेन मेरे कंटेनरों के लिए?

अगर आपका कोई रिवाज है seaआरसीएच डोमेन, आप इसे अपनी एप्लिकेशन विशिष्टता फ़ाइल या डीसीओएस मैराथन ऐप ऐड कमांड में सेट कर सकते हैं। यह उदाहरण दिखाता है कि कैसे सेट करें seaएप्लिकेशन विनिर्देश फ़ाइल का उपयोग करके rc डोमेन:

{"आईडी": "/मेरी-सेवा", "डीएनएस": {“searc": [".example.com" ] } }

यह उदाहरण दिखाता है कि कैसे सेट करें seadcos मैराथन ऐप का उपयोग करके rc डोमेन कमांड जोड़ें: $ dcos मैराथन ऐप जोड़ें { "id": "/my-service", "dns": { "searc": [".example.com" ] } }

DNS के बारे में अधिक जानकारी के लिए, मैराथन दस्तावेज़ में DNS सेटिंग्स देखें।

मैं अपने कंटेनरों के लिए एक कस्टम नेटवर्क कैसे कॉन्फ़िगर करूं?

यदि आपके पास एक कस्टम नेटवर्क है, तो आप इसे अपनी एप्लिकेशन विशिष्टता फ़ाइल या डीसीओएस मैराथन ऐप ऐड कमांड में सेट कर सकते हैं। यह उदाहरण दिखाता है कि एप्लिकेशन विनिर्देश फ़ाइल का उपयोग करके नेटवर्क कैसे सेट करें:

{"आईडी": "/मेरी-सेवा", "नेटवर्क": [{"मोड": "कंटेनर/ब्रिज" } ] }

यह उदाहरण दिखाता है कि dcos मैराथन ऐप ऐड कमांड का उपयोग करके नेटवर्क कैसे सेट करें:
$ डीसीओएस मैराथन ऐप जोड़ें {"आईडी": "/माय-सर्विस", "नेटवर्क": [{"मोड": "कंटेनर/ब्रिज" } ] }
नेटवर्क के बारे में अधिक जानकारी के लिए मैराथन दस्तावेज़ में नेटवर्क देखें।

संसाधनों पर रनटाइम बाधाएँ

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

उपयोगकर्ता स्मृति बाधाएँ

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

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

यदि आप किसी कंटेनर का संग्रहण स्थान बढ़ाना चाहते हैं, तो आप निम्न कमांड चला सकते हैं:

डॉकर रन -आईटी –मेमोरी=”4जी” उबंटू /बिन/बैश

यह कमांड 4GB RAM के साथ एक नया कंटेनर बनाता है। यदि आपको अधिक मेमोरी की आवश्यकता है, तो आप तदनुसार मूल्य बढ़ा सकते हैं।

वैकल्पिक रूप से, आप अधिक मेमोरी वाली छवि बनाने के लिए निम्नलिखित कमांड चला सकते हैं:

डॉकर बिल्ड –मेमोरी=”4जी” -टी माय_इमेज।

यह कमांड 4GB RAM के साथ एक नई छवि बनाता है। यदि आपको अधिक मेमोरी की आवश्यकता है, तो आप तदनुसार मूल्य बढ़ा सकते हैं।

कर्नेल स्मृति बाधाएँ

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

यदि आप कर्नेल मेमोरी पैरामीटर का मान समायोजित करना चाहते हैं, तो आपको पहले वर्तमान मान ज्ञात करना होगा। यह "docker info" कमांड का उपयोग करके किया जा सकता है। फिर आप अपना इच्छित नया मान निर्दिष्ट कर सकते हैं।

ध्यान दें कि इस पैरामीटर को बदलने के लिए कंटेनर को पुनरारंभ करने की आवश्यकता हो सकती है।

स्वपन बाधा

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

सीपीयू शेयर बाधा

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

सीपीयूसेट बाधा

एक सीपीयूसेट बाधा एक कंटेनर द्वारा उपयोग किए जा सकने वाले सीपीयू की संख्या पर एक सीमा लगाती है। यह सुनिश्चित करने के लिए उपयोगी है कि एक कंटेनर होस्ट सिस्टम पर अन्य कंटेनरों के साथ हस्तक्षेप नहीं करता है।

सीपीयू कोटा बाधा

सीपीयू कोटा सीमित करना (cgroup_cpu_shares) एक लिनक्स कर्नेल सुविधा है जो विभिन्न प्रक्रियाओं के बीच सीपीयू उपयोग को सीमित करने की अनुमति देती है। इस पैरामीटर को "-सीपीयू-शेयर" कमांड का उपयोग करके डॉकर में निर्दिष्ट किया जा सकता है।

उदाहरण के लिए, यदि आप 512 का मान निर्दिष्ट करते हैं, तो कंटेनर को 256 के मान वाले कंटेनर की तुलना में दोगुना सीपीयू समय प्राप्त होगा। इसलिए उच्च मान निर्दिष्ट करने का मतलब यह नहीं है कि कंटेनर को अधिक सीपीयू समय प्राप्त होगा, केवल अन्य के सापेक्ष कम मूल्यों वाले कंटेनर।

ब्लॉक आईओ बैंडविड्थ (ब्लैकियो) बाधा

ब्लॉक IO बैंडविड्थ थ्रॉटलिंग एक उपकरण है जो आपको एक कंटेनर के लिए I/O थ्रूपुट की बैंडविड्थ को सीमित करने की अनुमति देता है। यह सुनिश्चित करने के लिए उपयोगी है कि एक कंटेनर होस्ट पर अन्य कंटेनरों को अधिभारित नहीं करता है। ब्लॉक IO बैंडविड्थ को प्रति सेकंड बाइट्स में मापा जाता है और इसे सभी डिवाइस या किसी विशिष्ट डिवाइस के लिए सेट किया जा सकता है।

-ब्लकिओ-वजन

ब्लकिओ वजन इंगित करता है कि एक कंटेनर को पूरे सिस्टम से कितना I/O बैंडविड्थ प्राप्त होता है। उदाहरण के लिए, यदि आप 100 का मान निर्दिष्ट करते हैं, तो कंटेनर को 50 के डिफ़ॉल्ट मान वाले अन्य कंटेनर की तुलना में दोगुना I/O बैंडविड्थ प्राप्त होगा। यह पैरामीटर उपयोगी है यदि आप यह सुनिश्चित करना चाहते हैं कि एक विशेष कंटेनर इष्टतम प्रदर्शन प्राप्त करता है।

अतिरिक्त समूह

यदि आप एक ही कंटेनर में एकाधिक सेवाएँ चलाना चाहते हैं, तो आप अतिरिक्त समूह बना सकते हैं। यह उपयोगी है यदि, उदाहरण के लिए, आप एक वेब सर्वर और डेटाबेस सर्वर को एक ही कंटेनर में चलाना चाहते हैं। एक अतिरिक्त समूह बनाने के लिए, डॉकर रन कमांड में निम्नलिखित कमांड जोड़ें: -ग्रुप-ऐड।

रनटाइम विशेषाधिकार और लिनक्स क्षमताएं

"रनटाइम विशेषाधिकार" एक लिनक्स कोर फ़ंक्शन है जो रनटाइम के दौरान कुछ अनुमतियों को बदलने की अनुमति देता है। यह विशेष रूप से तब उपयोगी होता है जब किसी एप्लिकेशन को प्रारंभ या चलाने के लिए विभिन्न अनुमतियों की आवश्यकता होती है।

आप इस फ़ंक्शन का उपयोग "sudo" कमांड के साथ कर सकते हैं। उदाहरण के लिए: sudo chmod 777 /path/to/file. यह कमांड सभी उपयोगकर्ताओं को निर्दिष्ट फ़ाइल तक पूर्ण पहुंच प्रदान करता है।
हालाँकि, सूडो फ़ंक्शन के संबंध में कुछ सीमाएँ हैं। उदाहरण के लिए, उपयोगकर्ता उन अनुमतियों को नहीं बदल सकते जो उनके पास पहले से नहीं हैं। यह उपयोगकर्ताओं को उन अनुमतियों को मानने से रोकने के लिए एक सुरक्षा सावधानी है जो उनके पास नहीं होनी चाहिए।

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

लिनक्स क्षमताएँ लिनक्स कर्नेल का एक विस्तार है जो विशिष्ट अनुमतियाँ सेट करने की अनुमति देता है कार्यक्रम और आवेदन असाइन करने के लिए। यह उपयोगकर्ताओं को किसी प्रोग्राम या एप्लिकेशन के लिए अनुमतियाँ सेट करने और यदि आवश्यक हो तो उन अनुमतियों को बदलने की अनुमति देता है।

सूडो फ़ंक्शन की तुलना में बहुत अधिक लचीला, लिनक्स क्षमताएं उपयोगकर्ताओं को किसी प्रोग्राम या एप्लिकेशन पर अनुमतियों को ठीक करने की अनुमति देती है। उदाहरण के लिए, लिनक्स क्षमताओं वाला एक उपयोगकर्ता अनुमतियाँ सेट कर सकता है ताकि एक प्रोग्राम केवल पढ़ी गई फ़ाइलों तक ही पहुँच सके। यह सुनिश्चित करने के लिए यह बहुत उपयोगी है कि कोई प्रोग्राम उन फ़ाइलों में परिवर्तन नहीं करता है जो उसे नहीं करना चाहिए।

सूडो फ़ंक्शन की तुलना में लिनक्स क्षमताएं भी अधिक उपयोगकर्ता-अनुकूल हैं। Linux क्षमताओं के साथ आपको प्रत्येक कमांड के लिए अनुमतियाँ सेट करने की आवश्यकता नहीं है। कोई बस एक प्रोग्राम या एप्लिकेशन इंस्टॉल कर सकता है और फिर उस प्रोग्राम या एप्लिकेशन के लिए अनुमतियां सेट कर सकता है।

लॉगिंग ड्राइवर (-लॉग-ड्राइवर)

जब आप डॉकर छवि बनाते हैं, तो आप निर्दिष्ट कर सकते हैं कि किस लॉगिंग ड्राइवर का उपयोग करना है। डिफ़ॉल्ट लॉगिंग ड्राइवर "json-file" है। हालाँकि, कई अन्य विकल्प भी हैं। कुछ उदाहरण सिसलॉग, जर्नलड और फ्लुएंट हैं।

आप लॉगिंग ड्राइवर को "-लॉग-ड्राइवर" पैरामीटर के साथ निर्दिष्ट कर सकते हैं। उदाहरण के लिए, यदि आप syslog लॉगिंग ड्राइवर का उपयोग करना चाहते हैं, तो आप इसे इस प्रकार कर सकते हैं:

डॉकर रन –लॉग-ड्राइवर=syslog…

यदि आप अपने कंटेनरों के लॉग को केंद्रीकृत लॉगिंग सिस्टम में संग्रहीत करना चाहते हैं तो यह पैरामीटर बहुत उपयोगी है।

Dockerfile छवि डिफ़ॉल्ट को ओवरराइड करना

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

नई डॉकर छवि के लिए डिफ़ॉल्ट मान बदलने के लिए, आपको पहले अपनी प्रोजेक्ट निर्देशिका में ".dockerignore" नामक एक फ़ाइल बनानी होगी। इस फ़ाइल में आपको उन सभी निर्देशिकाओं और फ़ाइलों को निर्दिष्ट करना चाहिए जिन्हें छवि बनाते समय अनदेखा किया जाना चाहिए। एक बार जब आप यह फ़ाइल बना लेते हैं, तो आप अपनी छवि बनाने के लिए निम्नलिखित कमांड चला सकते हैं:

डॉकर बिल्ड-टी योर_इमेज_नाम।
यह कमांड "your_image_name" नामक एक नई डॉकर छवि बनाता है और किसी भी डिफ़ॉल्ट परिभाषित मान को अधिलेखित कर देता है।

Fazit

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

नोट..महत्वपूर्ण है!

इस वेबसाइट से जुड़ी सभी बाहरी साइटें स्वतंत्र स्रोत हैं। 
ये लिंक प्रायोजित नहीं हैं और इन्हें शामिल करने के लिए कोई वित्तीय योगदान प्राप्त नहीं हुआ है। 
इस वेबसाइट पर सभी जानकारी बिना गारंटी के प्रदान की जाती है।
यह साइट एक निजी परियोजना है Jan Domke और केवल व्यक्तिगत राय और अनुभवों को दर्शाता है।

Jan Domke

शीघ्र अभियंता | सोशल मीडिया मैनेजर | होस्टिंग मैनेजर | वेब व्यवस्थापक

मैं 2021 के अंत से निजी तौर पर ऑनलाइन पत्रिका चला रहा हूं SEO4Business और इस तरह मेरी नौकरी एक शौक में बदल गयी।
मैं 2019 से काम कर रहा हूं Senior Hosting Manager, जर्मनी की सबसे बड़ी इंटरनेट और मार्केटिंग एजेंसियों में से एक में और लगातार अपने क्षितिज का विस्तार कर रहा हूं।

Jan Domke