रूटलेस डॉकर

Rutalesa Dokara



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

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

या शायद आप किसी दिए गए सिस्टम पर कई उपयोगकर्ताओं को सभी उपयोगकर्ताओं की रूट अनुमति दिए बिना डॉकर तक पहुंचने और उपयोग करने की अनुमति देना चाहते हैं।







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



रूटलेस डॉकर क्या है?

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



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





यह काम किस प्रकार करता है

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

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



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

डॉकर slirp4netns जैसी सुविधाओं का लाभ उठाता है, जो रूटलेस डॉकर में उपयोगकर्ता-मोड टीसीपी/आईपी स्टैक प्रदान करता है। यह डॉकर को होस्ट सिस्टम पर रूट अनुमति के बिना नेटवर्क तक पहुंचने में सक्षम बनाता है।

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

उपरोक्त रूटलेस डॉकर इंस्टेंस के कुछ आवश्यक घटक हैं। याद रखें कि यह रूटलेस डॉकर की संपूर्ण कार्यप्रणाली का पता नहीं लगाता है। अधिक जानने के लिए दस्तावेज़ पर विचार करें.

रूटलेस डॉकर - आवश्यकताएँ

आइए हम सिद्धांत से आगे बढ़ें और सीखें कि रूटलेस डॉकर वातावरण कैसे बनाएं और कॉन्फ़िगर करें।

इस पोस्ट का अनुसरण करने के लिए, सुनिश्चित करें कि आपके पास निम्नलिखित हैं:

  1. रूट अनुमतियों वाला एक लिनक्स-आधारित सिस्टम।
  2. नेटवर्क का उपयोग।

UIDMap के साथ सिस्टम को कॉन्फ़िगर करना

डॉकर को स्थापित और कॉन्फ़िगर करने से पहले, हमें सिस्टम को uidmap उपयोगिता के साथ स्थापित और कॉन्फ़िगर करना होगा।

UIDMap हमें उपयोगकर्ता नामस्थान की सामग्री में लिनक्स सिस्टम में प्रक्रियाओं की यूआईडी और जीयूआई मैपिंग प्रबंधित करने की अनुमति देता है। याद रखें जब हमने उल्लेख किया था कि रूटलेस डॉकर उपयोगकर्ता नेमस्पेस का लाभ उठाता है? यह टूल हमें यूआईडी और जीआईडी ​​मैपिंग और उनके संबंधित नामस्थान निर्दिष्ट करने की अनुमति देगा।

सिस्टम पैकेज को निम्नानुसार ताज़ा करके प्रारंभ करें:

$ सूडो उपयुक्त-अद्यतन प्राप्त करें

इसके बाद, दिखाए गए अनुसार यूइडमैप उपयोगिता स्थापित करें:

$ सूडो उपयुक्त-स्थापित करें uidmap -और

रूटलेस डॉकर स्थापित करना

अगला चरण रूटलेस डॉकर को संसाधित करना और स्थापित करना है। हम नीचे बताए गए सरल चरणों का पालन करके ऐसा कर सकते हैं:

नीचे दिखाए गए लिंक से रूटलेस डॉकर इंस्टॉलर स्क्रिप्ट डाउनलोड करके प्रारंभ करें:

https://get.docker.com/rootless

आप कर्ल या WGET का उपयोग कर सकते हैं।

$ कर्ल -एसएसएल https: // get.docker.com / बिना जड़ |

ध्यान दें कि आप उपरोक्त कमांड को रूट यूजर के रूप में नहीं चला सकते हैं।

एक बार इंस्टॉलेशन पूरा हो जाने पर, अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करके अपनी .bashrc फ़ाइल को संपादित करें:

$ नैनो .bashrc

इसके बाद, bashrc कॉन्फ़िगरेशन फ़ाइल में निम्नलिखित प्रविष्टियाँ जोड़ें:

निर्यात XDG_RUNTIME_DIR = / घर / उबंटू / .docker / दौड़ना

निर्यात पथ = / घर / उबंटू / बिन: $पथ

निर्यात DOCKER_HOST =यूनिक्स: /// घर / उबंटू / .docker / दौड़ना / docker.sock

उपयोगकर्ता को 'उबंटू' से उस उपयोगकर्ता में बदलना सुनिश्चित करें जिसे आप डॉकर इंस्टॉल करना चाहते हैं। स्क्रिप्ट आउटपुट आपको .bashrc फ़ाइल में जोड़ने के लिए सामग्री देगा।

परिवर्तन सहेजें और संपादक बंद करें.

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

systemctl --उबंटू डोकर प्रारंभ करें

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

निष्कर्ष

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