2015-01-26 12 views
6

से डॉकर कंटेनर एक्सेस करना मैं डॉकर छवियों को चलाने के लिए boot2docker का उपयोग कर रहा हूं। मुझे अच्छी तरह पता है कि डॉकर कंटेनर तक पहुंचने के लिए मुझे boot2docker के आईपी पते तक पहुंचने की ज़रूरत है।आईओएस सिम्युलेटर

मूल रूप से टर्मिनल में यह curl $(boot2docker ip):49155

है जब मैंने इसे Chrome या Safari में इस तरह से करते हैं, सब कुछ ठीक लगता है। जब मैं आईओएस सिम्युलेटर (आईओएस 8) में सफारी ब्राउज़र में पता दर्ज करता हूं, तो मुझे संदेश मिलता है: सफारी पृष्ठ नहीं खोल सकता क्योंकि नेटवर्क कनेक्शन खो गया था।

मैं कुछ अन्य स्थानीय होस्ट-ish अनुप्रयोग चलाने के लिए कोशिश की - 0.0.0.0:4000 के माध्यम से अजगर में SimpleHTTPServer, सुलभ और कहा कि ठीक (आईओएस सिम्युलेटर में वेबसाइट लोड होता है) काम करने के लिए लगता है।

क्या यह डॉकर/आईओएस सिम्युलेटर में एक बग है या क्या मुझे कुछ अतिरिक्त सेटअप करना है?

उत्तर

5

boot2docker आपकी मशीन पर चल रहा एक वीएम है। आपका मैक "होस्ट" है और boot2docker मशीन "अतिथि" है। आईओएस सिम्युलेटर भी एक "अतिथि" है।

अतिथि मशीनें अपने नेटवर्क को कई तरीकों से एक्सेस कर सकती हैं। boot2docker को एनएटी का उपयोग करने के लिए स्थापित किया गया है, जिसका प्रभावी अर्थ है कि आप अतिथि से कहीं भी प्राप्त कर सकते हैं, लेकिन आप केवल अपनी मेजबानी मशीन से अतिथि से प्राप्त कर सकते हैं। आईओएस सिम्युलेटर मेजबान मशीन नहीं है (इसका अपना आईपी पता और उसका नेटवर्क इंटरफ़ेस है) इसलिए यह boot2docker अतिथि तक नहीं पहुंच सकता है।

पोर्ट फॉरवर्डिंग करना सबसे आसान काम है। boot2docker's instructions यह (वर्तमान में कुछ नहीं कर रहा) अपने मेजबान मशीन पर पोर्ट 49,155 का कारण बनता है boot2docker अतिथि पर बंदरगाह 49,155 करने के लिए सभी कनेक्शनों को अग्रेषित करने की तरह

boot2docker ssh -L 49155:localhost:49155 

कुछ सुझाव देते हैं।

अब आईओएस सिम्युलेटर से, आप अपने सर्वर तक पहुंच सकते हैं जैसे कि यह होस्ट पर था: 0.0.0.0:49155। यदि आप भौतिक आईओएस डिवाइस का उपयोग करते हैं, तो आपको अपने मैक के लिए बाहरी चेहरा वाला आईपी पता प्राप्त करना होगा और इसका इस्तेमाल करना होगा।

इस तरह पोर्ट अग्रेषण का एक विकल्प VMrant का उपयोग स्वयं को एक वीएम (बूट 2 डॉकर या कोरओएस या किसी भी हालिया लिनक्स को चलाने के लिए) का उपयोग करना होगा और उस वीएम का उपयोग "ब्रिज" नेटवर्किंग (जो अतिथि को बाहर से सुलभ बनाता है) मेज़बान)।

+0

बहुत धन्यवाद के लिए धन्यवाद! असल में मैंने जो किया था, वैसे ही मैंने कुछ लाइनों के साथ कुछ उम्मीद की थी (लेकिन इस स्पष्ट समझ के बिना) इसलिए मैंने स्थानीय नेटवर्क में boot2docker (+ डॉकर कंटेनर के अंदर) "एक्सपोज़" करने के लिए टूल SquidMan का उपयोग किया। फिर डिवाइस पर मैंने HTTP प्रॉक्सी सेट की है और यह काफी अच्छी तरह से काम करता है। दुर्भाग्य से आईओएस सिम्युलेटर मुझे HTTP यूआरओ सेट करने के लिए यूआई में अनुमति नहीं देता है, इसलिए मैं इसके बजाय आपके सुझाव का प्रयास करूंगा! – Michal

संबंधित मुद्दे