विंडोमैकसॉफ्टवेयरसेटिंग्ससुरक्षाएंड्रॉइडउत्पादकतालिनक्सप्रदर्शनएप्पलडिवाइस प्रबंधन सभी

होस्ट और डॉकर कंटेनरों के बीच फोल्डर्स कैसे साझा करें

संपादित 5 दिन पहले द्वारा ExtremeHow संपादकीय टीम

डॉकर डेस्कटॉपफोल्डर्सफ़ाइल साझा करनामेज़बानकंटेनरकॉन्फ़िगरेशनदेवऑप्ससॉफ्टवेयर विकासबादल कम्प्यूटिंगवर्चुअलाइजेशन

अनुवाद अपडेट किया गया 5 दिन पहले

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

डॉकर वॉल्यूम्स को समझना

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

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

डॉकर वॉल्यूम्स के प्रकार

डॉकर विभिन्न उपयोग मामलों के लिए विभिन्न प्रकार के वॉल्यूम्स का समर्थन करता है:

बाइंड माउंट्स का उपयोग करके फोल्डर्स साझा करना

होस्ट और डॉकर कंटेनर के बीच फोल्डर साझा करने का सबसे सरल तरीका बाइंड माउंट्स के माध्यम से है। चलिए देखते हैं इसमें शामिल चरण और एक उदाहरण:

बाइंड माउंट का उपयोग करने के लिए चरण-दर-चरण गाइड

  1. होस्ट पर एक डायरेक्ट्री बनाएं:

    अपने होस्ट सिस्टम पर एक डायरेक्ट्री बनाएं जिसे आप डॉकर के साथ साझा करना चाहते हैं। उदाहरण के लिए, आप /Users/username/shared नामक डायरेक्ट्री बना सकते हैं।

  2. डॉकर रन कमांड को संशोधित करें:

    इसके बाद, बाइंड माउंट को शामिल करने के लिए डॉकर रन कमांड को अपडेट करें। पथ मानचित्रण के बाद -v या --volume फ्लैग का उपयोग करें। उदाहरण के लिए, अपने कंटेनर में /shared के लिए /Users/username/shared को माउंट करने के लिए, कमांड है:

    docker run -v /Users/username/shared:/shared my-image

    इस उदाहरण में, my-image से तात्पर्य उस डॉकर इमेज से है जिसे आप चला रहे हैं। यह माउंट कंटेनर के अंदर /shared में किए गए किसी भी बदलाव को होस्ट के /Users/username/shared फोल्डर में परिलक्षित होने की अनुमति देता है।

  3. कंटेनर में साझा फोल्डर तक पहुंचें:

    एक बार कंटेनर बाइंड माउंट के साथ चल रहा है, कंटेनर के अंदर /shared में संशोधित किसी भी फाइल को होस्ट की /Users/username/shared डायरेक्ट्री में सीधे प्रभावित करता है और इसके विपरीत।

बाइंड माउंट उपयोग का उदाहरण

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

  1. साझा डायरेक्ट्री सेट अप करें:
    • अपने होस्ट पर website नामक एक डायरेक्ट्री बनाएं।
    • website डायरेक्ट्री के अंदर कुछ सामग्री के साथ index.html फाइल जोड़ें।
  2. बाइंड माउंट के साथ एनजीआईएनएक्स कंटेनर चलाएं:

    निम्न कमांड का उपयोग करें website डायरेक्ट्री को /usr/share/nginx/html डायरेक्ट्री में कंटेनर के अंदर बाइंड माउंट करने के लिए:

    docker run --name my-nginx -v "$PWD"/website:/usr/share/nginx/html:ro -d nginx

    :ro विकल्प कंटेनर के अंदर बाइंड माउंट को केवल पढ़ने के लिए बनाता है।

  3. एनजीआईएनएक्स सर्वर तक पहुंचें:

    वेब ब्राउज़र में http://localhost पर जाएं ताकि एनजीआईएनएक्स द्वारा आप के होस्ट पर साझा डायरेक्ट्री से सर्व किए गए index.html फाइल को देखा जा सके।

डॉकर वॉल्यूम्स का उपयोग करके फोल्डर्स साझा करना

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

डॉकर वॉल्यूम बनाना

एक नया वॉल्यूम बनाने के लिए docker volume create कमांड का उपयोग करें, जैसा नीचे दिखाया गया है:

docker volume create my-volume

यह कमांड एक my-volume नामकवॉल्यूम बनाता है जिसे डॉकर मैनेज करेगा।

कंटेनर से वॉल्यूम को जोड़ना

बने हुए वॉल्यूम को कंटेनर से जोड़ने के लिए निम्नलिखित कमांड का उपयोग करें:

docker run -v my-volume:/app/data my-image

यह उदाहरण कंटेनर में /app/data पर my-volume माउंट करता है। /app/data में लिखा गया कोई भी डेटा my-volume में रहता है, भले ही कंटेनर को बंद या हटा दिया गया हो।

वॉल्यूम उपयोग उदाहरण

एक परिदृश्य पर विचार करें जहां आप कंटेनर के पुनः आरंभ के बावजूद एक डेटाबेस स्टोर करना चाहते हैं। आप एक वॉल्यूम का उपयोग कर सकते हैं ताकि एक डेटाबेस कंटेनर की डेटा डायरेक्ट्री को माउंट किया जा सके:

  1. एक डॉकर वॉल्यूम बनाएं:
    docker volume create db-data
  2. वॉल्यूम के साथ डेटाबेस कंटेनर को चलाएं:
    docker run -d --name my-database -v db-data:/var/lib/mysql mysql:5.7

    इस मामले में, /var/lib/mysql डायरेक्ट्री में किसी भी डेटा परिवर्तन को db-data वॉल्यूम में संग्रहीत किया जाता है।

  3. डेटा स्थायिता:

    यहां तक कि अगर आप my-database कंटेनर को बंद और हटा देते हैं, db-data वॉल्यूम डेटा को बरकरार रखता है, और इसे किसी अन्य इंस्टेंस से जोड़ने के लिए तैयार रहता है।

बाइंड माउंट समस्याओं का डिबगिंग और समस्या निवारण

एक बाइंड माउंट सेट करना आसान हो सकता है, लेकिन यह समस्याग्रस्त भी हो सकता है। यहां कुछ सामान्य समस्याएं और समाधान हैं:

निष्कर्ष और सर्वोत्तम प्रथाएं

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

यहां कुछ सर्वोत्तम प्रथाएं हैं जिन पर विचार करना चाहिए:

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

यदि आपको लेख की सामग्री में कुछ गलत लगता है, आप कर सकते हैं


टिप्पणियाँ