Computer >> कंप्यूटर >  >> प्रणाली >> Linux

एक डॉकटर कंटेनर को दूसरे होस्ट में कॉपी / स्थानांतरित कैसे करें

एक डॉकटर कंटेनर को दूसरे होस्ट में कॉपी / स्थानांतरित कैसे करें

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

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

कंटेनर इमेज को सोर्स होस्ट से सेव करें

पहले कंटेनर को रोकना आवश्यक नहीं है, लेकिन यह अत्यधिक अनुशंसा की जाती है कि आप ऐसा करें। आप अपने डॉकर इंस्टेंस में डेटा का एक स्नैपशॉट लेंगे। यदि आपके ऐसा करते समय यह चल रहा है, तो इस बात की बहुत कम संभावना है कि आपके स्नैपशॉट में कुछ फ़ाइलें अधूरी रह जाएँगी। कल्पना कीजिए कि कोई व्यक्ति 500MB फ़ाइल अपलोड कर रहा है। जब 250MB अपलोड हो जाता है, तो आप docker commit . जारी करते हैं आज्ञा। तब अपलोड जारी रहता है, लेकिन जब आप इस डॉकर छवि को किसी अन्य होस्ट पर पुनर्स्थापित करते हैं, तो 500MB में से केवल 250MB ही उपलब्ध हो सकता है।

इसलिए, यदि आप कर सकते हैं, तो पहले उदाहरण को रोकें।

docker stop NAME_OF_INSTANCE
एक डॉकटर कंटेनर को दूसरे होस्ट में कॉपी / स्थानांतरित कैसे करें

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

ध्यान दें कि यदि इंस्टेंस वर्तमान में चल रहा है, तो इसकी सामग्री सहेजे जाने पर यह क्रिया इसे रोक देगी। यदि आपने अपने कंटेनर में बहुत अधिक डेटा जोड़ा है, तो इस कार्रवाई को पूरा होने में अधिक समय लगेगा। यदि यह एक समस्या है, तो आप docker commit -p=false NAME_OF_INSTANCE mycontainerimage दर्ज करके इस विराम से बच सकते हैं अगले आदेश के बजाय। हालाँकि, ऐसा तब तक न करें जब तक कि बिल्कुल आवश्यक न हो। इस मामले में असंगत/अपूर्ण डेटा वाली छवि बनाने की संभावना बढ़ जाती है।

इस ट्यूटोरियल में, परिणामी छवि के लिए एक सामान्य नाम चुना गया है, mycontainerimage . आप चाहें तो इस नाम को बदल सकते हैं। यदि आप ऐसा करते हैं, तो इसे बाद के सभी आदेशों में बदलना याद रखें, जहां आप इसका सामना करते हैं।

docker commit NAME_OF_INSTANCE mycontainerimage
एक डॉकटर कंटेनर को दूसरे होस्ट में कॉपी / स्थानांतरित कैसे करें

अब, इस इमेज को एक फाइल में सेव करें और इसे कंप्रेस करें।

docker save mycontainerimage | gzip > mycontainerimage.tar.gz

इसके बाद, अपनी पसंदीदा फ़ाइल स्थानांतरण विधि का उपयोग करें और mycontainerimage.tar.gz . को कॉपी करें उस होस्ट पर जहां आप अपने कंटेनर को माइग्रेट करना चाहते हैं।

गंतव्य होस्ट पर कंटेनर छवि लोड करें

होस्ट में लॉग इन करने के बाद जहां आपने इमेज ट्रांसफर की थी, उसे डॉकर में इंपोर्ट करें।

gunzip -c mycontainerimage.tar.gz | docker load

चूंकि आपने इस कंटेनर को यहां कभी भी इनिशियलाइज़ नहीं किया है, आप इसे docker start . से शुरू नहीं कर सकते हैं अभी तक। इसके बजाय, उसी कमांड को जारी करें जिसका आपने अतीत में उपयोग किया था, जब आपने पहली बार इस डॉकर इंस्टेंस को चलाया था। अब फर्क सिर्फ इतना है कि आप अतीत में किसी भी छवि का उपयोग करने के बजाय अंत में "mycontainerimage" का उपयोग करेंगे।

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

docker run -d --name=PICK_NAME_FOR_CONTAINER mycontainerimage

इसके विपरीत, निम्नलिखित कमांड का एक उदाहरण है जहां पैरामीटर --publish . है होस्ट मशीन पर पोर्ट 80 को कंटेनर पर पोर्ट 80 को अग्रेषित करना आवश्यक था:

docker run -d --name=http-server --publish 80:80 mycontainerimage

बाद में, आप docker stop . के साथ इस कंटेनर को सामान्य रूप से रोक और शुरू कर सकते हैं और docker start आदेश।

बिना फाइल बनाए इमेज ट्रांसफर करें

कभी-कभी आप mycontainerimage.tar.gz . बनाना छोड़ सकते हैं फ़ाइल। हो सकता है कि आपके पास पर्याप्त डिस्क स्थान न हो क्योंकि कंटेनर में बहुत अधिक डेटा होता है। आप एक कमांड में डेस्टिनेशन होस्ट पर इमेज को सेव, कंप्रेस, ट्रांसफर, अनकंप्रेस और लोड कर सकते हैं। docker commit चलाने के बाद पहले खंड में चर्चा की गई कमांड, आप इसका उपयोग कर सकते हैं:

docker save mycontainerimage | gzip | ssh [email protected] 'gunzip | docker load'

इसे विंडोज से भी काम करना चाहिए, क्योंकि इसमें अब एक बिल्ट-इन SSH क्लाइंट है (PuTTY अब और जरूरी नहीं है)।

बाद में, docker run के साथ जारी रखें आदेश जो आपकी स्थिति पर लागू होता है।

निष्कर्ष

docker save और docker load कभी-कभी कंटेनरों को इधर-उधर ले जाने के लिए एक तदर्थ समाधान के रूप में महान हैं। लेकिन याद रखें, अगर आप अक्सर ऐसा करते हैं, तो हो सकता है कि आप इसके बजाय अपना निजी भंडार स्थापित करना चाहें।

<छोटा>छवि क्रेडिट:वायु सेना चिकित्सा सेवा


  1. Google Apps डोमेन वेबसाइट को दूसरे होस्ट पर कैसे ले जाएं।

    इस ट्यूटोरियल में आपको अपनी Google डोमेन वेबसाइट को किसी अन्य होस्ट पर रीडायरेक्ट/स्थानांतरित करने के बारे में विस्तृत निर्देश मिलेंगे। यह ट्यूटोरियल उन उपयोगकर्ताओं के लिए लिखा गया है, जिन्होंने G Suite (Google Apps) के माध्यम से एक डोमेन नाम खरीदा है और वे उस डोमेन नाम का उपयोग किसी ऐसी वेबसाइट के

  1. विंडोज को दूसरी ड्राइव पर कैसे ले जाएं।

    यदि आप Windows को किसी अन्य ड्राइव पर ले जाना चाहते हैं, तो नीचे पढ़ना जारी रखें। समय के साथ, कंप्यूटर हार्डवेयर (बाकी सब कुछ की तरह) खराब हो जाता है। यह निश्चित रूप से हार्ड ड्राइव के साथ भी होता है, जो समय के साथ उनका प्रदर्शन कम हो जाता है और उन्हें बदलने की आवश्यकता होती है। हार्ड डिस्क शायद क

  1. Windows 10 में इंस्टॉल किए गए प्रोग्राम को दूसरे ड्राइव में कैसे ले जाएं

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