2015-09-02 21 views
5

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

यहां क्या हो रहा है?

विवरण

मैं डोकर टूलबॉक्स मेरी विंडोज 7 पीसी पर स्थापित किया है। मैंने boot2docker के पुराने संस्करण से अपने boot2docker VM माइग्रेट किया। (यह इस पर ज्यादा नहीं था ... बस "हैलो दुनिया" छवि।)

डोकर त्वरित प्रारंभ टर्मिनल में, मैं निम्न आदेश के साथ मेरी नई बिल्ला कंटेनर शुरू करने में सक्षम था:

docker run -i -p 8080:8080 --rm tomcat:8-jre8 

docker ps 
docker exec -i <containerId> bash 

फिर, बैश खोल के भीतर:

मुझे लगता है कि बिल्ला की पुष्टि अप और निम्न कमांड का प्रयोग चल रहा है करने में सक्षम था

curl localhost:8080 

इस कर्ल से, मुझे अपेक्षित HTML प्रतिक्रिया वापस मिलती है।

हालांकि, अगर मैं सीधे डोकर त्वरित प्रारंभ टर्मिनल से कर्ल कमांड चलाएँ:

curl localhost:8080 

... मैं "कनेक्शन से इनकार कर दिया"।

अब यहाँ कुछ पेचीदा है ... अगर मैं

boot2docker ip 

चलाने ... यह मुझे है कि "boot2docker-वी एम" नहीं चल रहा है एक त्रुटि देता है। Boot2docker VM नीचे होने पर मेरा कंटेनर कैसे चल सकता है? यहां कुछ चल रहा है कि मैं वास्तव में समझ में नहीं आता।

यदि मैं "boot2docker up" चलाता हूं, तो मैं एक आईपी पता प्राप्त करने में सक्षम हूं, लेकिन मैं अभी भी उस आईपी पते से टोमकैट तक नहीं पहुंच सकता।

+0

मुझे लगता है कि आपको अपने मेजबान मशीन में boot2docker-vm से पोर्ट अग्रेषित करने की आवश्यकता हो सकती है। – rohitkadam19

+0

मैंने ओरेकल वीएम वर्चुअलबॉक्स प्रबंधक खोला, और ऐसा लगता है कि मेरे पास दो वीएम हैं ... जिसे बूट 2 डॉकर कहा जाता है, जिसे रोक दिया जाता है, और जिसे "डिफ़ॉल्ट" कहा जाता है, जो चल रहा है। क्या 2 वीएम होने चाहिए? या ऐसा इसलिए है क्योंकि मैं पुराने boot2docker संस्करण से माइग्रेट किया गया था? क्या मुझे उन्हें दोनों हटा देना चाहिए और boot2docker को नया बनाना चाहिए? मैं boot2docker डिफ़ॉल्ट रूप से सही चीज़ कैसे कर सकता हूं, इसलिए मुझे वर्चुअलबॉक्स में सेटिंग्स के साथ गड़बड़ नहीं करना है? – RMorrisey

+1

मैं कहूंगा, सब कुछ साफ करें। और हां, जब आप विंडोज और मैक पर boot2docker इंस्टॉल करते हैं, तो यह आपको वीएम देता है और उस वीएम डॉकर डिमन के अंदर चलता है। Boot2docker चलने वाले राज्य में होना चाहिए। – rohitkadam19

उत्तर

14

आप डॉकर टूलबॉक्स का उपयोग कर रहे हैं। Boot2docker को हटा दिया गया है। अब हर डोकर डेमॉन (VM) Docker Machine

द्वारा किया जाता है जो VMs चल रहे हैं देखने के लिए, का उपयोग करें आदेश

docker-machine ls 

यह आप डिफ़ॉल्ट वी एम के साथ सिस्टम पर चलने दिखाएगा अपनी आईपी ​​पता और आप पोर्ट 8080 पर उस आईपी से टॉमकैट तक पहुंच सकते हैं। डॉकर-मशीन के बारे में अधिक पढ़ें ताकि एकाधिक वीएम आदि का प्रबंधन कैसे किया जा सके।

+0

धन्यवाद सचिन, आपने अभी अपना दिन बनाया है! :) – jayeff

+0

मेरी खुशी @ jayeff :) :) –

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