एक उपकरण से एक docker कंटेनर तक कैसे पहुंचें जो docker होस्ट के समान नेटवर्क में है?


0

मेरे पास एक docker कंटेनर है जो मेरे linux होस्ट में डिफ़ॉल्ट docker Bridge नेटवर्क में चल रहा है। कंटेनर इंटरनेट तक पहुंच सकता है। ( wget -qO- google.com काम करता है) ifconfig आईपी ​​172.17.0.2 दिखाता है। मेरा लैपटॉप जो मेरे सर्वर के समान नेटवर्क से जुड़ा है। यह मेरे सर्वर को पिंग कर सकता है और मेरा सर्वर मेरे लैपटॉप को पिंग कर सकता है और मेरा डॉकटर कंटेनर मेरे लैपटॉप को पिंग कर सकता है लेकिन मेरा लैपटॉप मेरे डॉक कंटेनर को पिंग नहीं कर सकता है। (मेरा सर्वर मेरे कंटेनर को भी पिंग कर सकता है।) वायरशर्क के उपयोग के साथ मुझे पता चला कि डॉक कंटेनर पिंग मेरे सर्वर के आईपी से आ रहा है।

मैं पढ़ता हूं कि पुल एडाप्टर का उपयोग करके कनेक्ट करने पर डॉकटर कंटेनर इंटरनेट से कनेक्ट होता है। (न जाने कहां) के बारे में पढ़ा बहाना :

"एक छोटी सी चेतावनी है और वह यह है कि मस्काराड फ़ंक्शन लगभग हमेशा केवल एक ही दिशा में काम करता है, वह यह है कि मस्कार किया गया होस्ट कॉल आउट कर सकता है, लेकिन वे दूरस्थ होस्ट से नेटवर्क कनेक्शन स्वीकार या प्राप्त नहीं कर सकते हैं।"

इस वाक्य में लगभग एक है इसलिए मुझे यकीन नहीं है कि क्या यह डॉकटर के लिए सच है।

तो मेरा सवाल यह है कि क्या मैं किसी तरह अपने लैपटॉप से ​​अपने डॉकटर कंटेनर (मेरे वर्तमान कॉन्फ़िगरेशन में) के लिए कनेक्शन शुरू कर सकता हूं?  क्यों नहीं?

ऐसा करने के लिए क्या आवश्यक होगा? (मुझे -प्रकाश के बारे में पता है)

जवाबों:


-1

आप अपने कंटेनर को SSH सर्वर के रूप में बना सकते हैं, और फिर अपने लैपटॉप से ​​अपने कंटेनर में ssh कर सकते हैं।

अधिक जानकारी के लिए कि कैसे करना है, देखें SSH सेवा का डॉकरीकरण करें

अद्यतन करें

डॉकटर कंटेनर के लिए, जहाँ तक मुझे पता है, इसके पास इंटरनेट से जुड़ने के दो तरीके हैं।

एक मेजबान को बंदरगाह का पर्दाफाश करना है। एक और इनग्रेड कंट्रोलर के माध्यम से है।

यदि नहीं, तो हर कोई कंटेनर होस्ट को छोड़कर इंटरनेट से कंटेनर से कनेक्ट नहीं कर सकता है।


यह दिलचस्प है कि मैं उस सुविधा के बारे में नहीं जानता था, लेकिन मेरा मुख्य सवाल यह है कि क्या मेरा लैपटॉप एक डॉकटर कंटेनर से कनेक्शन शुरू कर सकता है क्योंकि वे अभी हैं या यदि मेरा लैपटॉप केवल उनसे बात कर सकता है यदि वे कनेक्शन शुरू करते हैं। क्षमा करें यदि वह स्पष्ट नहीं था। (या नहीं)
raldone01

कुछ ऐसा है जैसे आप दस्तावेज़ से कंटेनर के बहाने के बारे में देखते हैं। कंटेनर पोर्ट मैपिंग के जरिए सर्वर आईपी से इंटरनेट एक्सेस कर सकता है। नट की तरह। कंटेनर का पता सर्वर के समान सीमा में नहीं है। यदि आप अपना कंटेनर IP पता पिंग कर रहे हैं, तो आप ऐसा नहीं कर सकते।
Charles Xu - MSFT

तो मेरे कंटेनर सुरक्षित हैं?
raldone01

@ शर्की हाँ, यदि आप सर्वर पर कंटेनर पोर्ट को उजागर नहीं करते हैं, तो सर्वर के अलावा कोई भी इसे एक्सेस नहीं कर सकता है।
Charles Xu - MSFT

यह मेरा सवाल था धन्यवाद। (शायद आप उन टिप्पणियों को अपने उत्तर में जोड़ सकते हैं)
raldone01

0

डिफ़ॉल्ट रूप से, डॉकर कंटेनर होस्ट के अंदर चलने वाले एक पुल नेटवर्क से जुड़ते हैं (अपने स्थानीय नेटवर्क के बारे में सोचें जैसे WAN / इंटरनेट और नेटवर्क Docker एक LAN की तरह बनाता है और Docker एक रूटर की तरह होस्ट करता है)

आप बंदरगाहों का उपयोग कर उजागर कर सकते हैं docker run -p जो मेजबान आईपी पते से कंटेनर आईपी पते पर NAT नियम बनाता है (जैसे कि यदि आप इंटरनेट से अपने निजी नेटवर्क के अंदर एक डिवाइस को प्राप्त करने के लिए अपने राउटर पर पोर्ट अग्रेषित करते हैं)

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

उन विकल्पों के अलावा, आप डॉकर नेटवर्किंग को कॉन्फ़िगर करने के अन्य तरीकों को देख सकते हैं यदि आधिकारिक दस्तावेज https://docs.docker.com/network/#scope-of-this-topic

इन विधियों के अतिरिक्त, आप होस्ट में SSH भी कर सकते हैं और कंटेनर में SSH सुरंग बना सकते हैं। उदाहरण के लिए, यदि डॉकर होस्ट 10.0.0.2 है और कंटेनर में 172.17.0.1 का IP पता है और आप पोर्ट 8080 पर nginx का उपयोग करना चाहते हैं, तो आप कर सकते हैं ssh -L 8080:172.17.0.1:8080 10.0.0.2 कंटेनर पर 8080 के SSH कनेक्शन की शुरुआत करने वाली मशीन पर पोर्ट 8080 को रीडायरेक्ट करेगा

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.