Computer >> कंप्यूटर ट्यूटोरियल >  >> सॉफ्टवेयर >> आभासी मशीन

LXD के अंदर डॉकर चलाएं: चरण-दर-चरण गाइड

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

फिर, आपको जो समस्या है वह इस प्रकार है। डॉकर निष्पादन निम्नलिखित त्रुटि के साथ विफल होता है: docker: Error response from daemon: OCI runtime create failed: container_linux.go:367: starting container process caused: process_linux.go:495: container init caused: rootfs_linux.go:60: mounting "proc" to rootfs at "/proc" caused: permission denied: unknown. वहां बहुत सारा टेक्स्ट है। आइए इसे डीबग करें, क्या हम?

समस्या का विस्तार

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

तब मैंने सोचा, मैं देखना चाहूंगा कि LXD चीजें कैसे करता है, और शायद यह मुझे इस बात की बेहतर समझ दे सकता है कि मैं यह समस्या क्यों देख रहा था। वास्तव में, मुझे जल्द ही LXD के बारे में एक पुराना, अर्ध-दस्तावेजीकृत लेख मिला, जो स्थिति की व्याख्या करता है। सुरक्षा कारणों से, कंटेनरों को /proc और /sys तक असुरक्षित तरीकों से पहुंचने की अनुमति नहीं है। इसके लिए एक समाधान - प्रासंगिक सुरक्षा निहितार्थों के साथ - ऐसी पहुंच की अनुमति देना है।

समाधान

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

lxc launch "image" "container name" -c security.nesting=true

यदि कंटेनर मौजूद है, तो इसे शुरू करने से पहले:

lxc config set "container name" security.nesting true

और फिर कंटेनर शुरू करें:

lxc start "container name"

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

निष्कर्ष

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

बेहतर दस्तावेज़ीकरण मदद करेगा। कम गूढ़ त्रुटि संदेश भी। इस बीच, यह सोचने की कोशिश करें कि आपके सेटअप में, जो आप करने की कोशिश कर रहे हैं, उसके लिए अनुमति त्रुटियां क्यों हो सकती हैं, और यह आपको सही दिशा में ले जाना चाहिए। एक बार जब आप जानते हैं कि समस्या कथन को कैसे फ्रेम करना है, तो आप 80% काम कर चुके हैं। अब आप कंटेनरों के भीतर कंटेनर कर सकते हैं, पूरा: Yo Dawn, I herd u like containers, so we put containers in your containers ... Inception. बोनस: यह देखने की कोशिश करें कि ब्रह्मांड के फटने से पहले आप कितने स्तरों की नेस्टिंग कर सकते हैं।

Cheers.

  1. डॉकर डेस्कटॉप: सहज कंटेनर प्रबंधन के लिए 직관적인 GUI डॉकर डेस्कटॉप: सहज कंटेनर प्रबंधन के लिए 직관적인 GUI

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

  1. एकाधिक VMs के लिए वर्चुअलबॉक्स NAT नेटवर्किंग कॉन्फ़िगर कैसे करें एकाधिक VMs के लिए वर्चुअलबॉक्स NAT नेटवर्किंग कॉन्फ़िगर कैसे करें

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

  1. VirtualBox में मास्टरी: डिस्क छवियों को क्लोन करने के लिए चरण-दर-चरण गाइड VirtualBox में मास्टरी: डिस्क छवियों को क्लोन करने के लिए चरण-दर-चरण गाइड

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