अर्केन वीकली में आपका स्वागत है। आज, मैं आपसे एक ऐसी समस्या के बारे में बात करना चाहता हूँ जिससे आपका सामना न हो, लेकिन यदि आप ऐसा करते हैं, तो आप एक त्वरित और आसान समाधान चाहते हैं। हाथ में उपकरण:एलएक्सडी कंटेनर, डॉकर। हाथ में मिशन:आप एक ही समय में दोनों को चलाना चाहते हैं। अधिक विशेष रूप से, आप एक LXD कंटेनर को स्पॉन करना चाहते हैं, और फिर उसके अंदर एक डॉकटर कंटेनर शुरू करें। क्यों? क्यों नहीं।
फिर, आपके पास जो समस्या है वह इस प्रकार है। डॉकर निष्पादन निम्न त्रुटि के साथ विफल हो जाता है:डॉकर:डेमन से त्रुटि प्रतिक्रिया:ओसीआई रनटाइम निर्माण विफल:कंटेनर_लिनक्स. proc" to rootfs at "/ proc" कारण:अनुमति अस्वीकृत:अज्ञात। वहां बहुत सारा पाठ। आइए इसे डिबग करें, क्या हम?
समस्या के बारे में विस्तार से
आम तौर पर, जब आप डॉकर कंटेनर चलाते हैं, तो आपको एक्सेस करने/प्रोक करने में कोई समस्या नहीं होनी चाहिए। लेकिन उपरोक्त त्रुटि हमें बताती है कि यह करने योग्य नहीं है। यह एक बल्कि भ्रमित करने वाला संदेश है, क्योंकि इसमें बहुत सारी जानकारी है, जो एक भ्रामक निशान बनाती है। सच है, इस समस्या का सामना करने के कई कारण हो सकते हैं। मेरे मामले में, सेटअप बिल्कुल नया था, वेनिला, बिना किसी पागल अनुकूलन के। कोई अन्य त्रुटि नहीं थी, और सभी व्यावहारिक उद्देश्यों के लिए, डॉकर को सही ढंग से स्थापित और कॉन्फ़िगर किया गया है।
फिर मैंने सोचा, मैं यह देखना चाह सकता हूं कि एलएक्सडी कैसे काम करता है, और शायद इससे मुझे इस बात की बेहतर समझ मिल सके कि मैं इस मुद्दे को क्यों देख रहा था। दरअसल, मुझे जल्द ही LXD के बारे में एक पुराना, अर्ध-दस्तावेज लेख मिला, जो स्थिति की व्याख्या करता है। सुरक्षा कारणों से, कंटेनरों को असुरक्षित तरीकों से / proc और / sys तक पहुँचने की अनुमति नहीं है। इसके लिए एक समाधान - प्रासंगिक सुरक्षा निहितार्थों के साथ - ऐसी पहुंच की अनुमति देना है।
समाधान
आपको जो करना है वह प्रभावित कंटेनर के लिए नेस्टिंग की अनुमति है।
lxc लॉन्च "इमेज" "कंटेनर का नाम" -c security.nesting=true
यदि कंटेनर मौजूद है, तो इसे शुरू करने से पहले:
lxc कॉन्फ़िगरेशन सेट "कंटेनर का नाम" सुरक्षा.नेस्टिंग सच
और फिर कंटेनर शुरू करें:
lxc प्रारंभ "कंटेनर नाम"
यदि यह पहले से चल रहा है, तो कंटेनर को रोकें, नीति सेट करें, और फिर से शुरू करें। ऑपरेशन गैर-विनाशकारी है, इसलिए यदि आप पहले से ही कंटेनर को पैदा करने के बाद ही समस्या का सामना करते हैं, तो आप इसके अंदर कोई काम या डेटा नहीं खोएंगे। सेटिंग भी पूर्ण प्रतिवर्ती है। और हमारा काम यहीं हो जाए, दोस्तों।
निष्कर्ष
यह देखना दिलचस्प है कि मैंने अभी केवल एक ऐसे मुद्दे का सामना किया है जो लगभग पाँच विषम वर्षों से है। या कि इतने सारे लोग इस समस्या का सामना कर रहे हैं, और फिर भी जानकारी दुर्लभ और बिखरी हुई है। ठीक है, यदि आप नेस्टेड कंटेनरों के लिए जा रहे हैं, तो आप एलएक्सडी में प्रभावित कंटेनरों के लिए सुरक्षा नीति को संपादित करना चाहते हैं। यह अपेक्षाकृत सरल ट्रिक है। निश्चित रूप से इसमें और भी बहुत कुछ है, जैसे विशेषाधिकार प्राप्त और विशेषाधिकार प्राप्त कंटेनरों की अवधारणा, और अन्य सुरक्षा विचार। लेकिन अगर आपका काम सुरक्षा के बारे में नहीं है, तो इस बदलाव में कोई कमी नहीं है।
बेहतर प्रलेखन मदद करेगा। कम गुप्त त्रुटि संदेश भी। इस बीच, यह सोचने का प्रयास करें कि, आपके सेटअप में, आप जो करने का प्रयास कर रहे हैं, उसके लिए अनुमति त्रुटियाँ क्यों हो सकती हैं, और यह आपको सही दिशा में ले जाना चाहिए। एक बार जब आप समस्या कथन को फ्रेम करना जानते हैं, तो आप 80% कर चुके हैं। अब आप कंटेनरों के भीतर कंटेनर कर सकते हैं, संपूर्ण:यो डॉन, मैं आपको कंटेनर पसंद करता हूं, इसलिए हम आपके कंटेनरों में कंटेनर डालते हैं ... स्थापना। बोनस:यह देखने की कोशिश करें कि ब्रह्मांड के फटने से पहले आप कितने स्तरों पर घोंसला बना सकते हैं।
चीयर्स।