डॉकर कंटेनर में पोर्ट को कैसे उजागर करें

मैंने कस्टम पोर्ट (8080) पर डॉकर कंटेनर में एक वेब सेवा चलाई है । यहां, मैं एक कंटेनर चलाने की कोशिश कर रहा हूं, संबंधित कंटेनर के पोर्ट को उजागर कर रहा हूं (जैसे यहाँ देखा), लेकिन कोई फायदा नहीं हुआ ।

docker run -p 127.0.0.1:8080:8080 beatthemarket run wait

लेकिन मैं उस वेब सेवा समापन बिंदु तक नहीं पहुंच सकता ।

मैं) क्या मैं कंटेनर के बंदरगाह को सही ढंग से उजागर कर रहा हूं? ii) यदि यह पोर्ट अनुपलब्ध है, या यदि मेरी वेब सेवा को कॉल नहीं किया जा रहा है तो समस्या निवारण कैसे हो सकता है (कंटेनर में खोल देना और समापन बिंदु को कर्ल करना अच्छा होगा) ।

मेरा डॉकरफाइल देखा जा सकता है यहाँ. और मैं एडज़र्क का उपयोग कर रहा हूं बूट-clj आधार छवि।

वास्तव में डॉकर चल रहा है, हर बार जार का एक गुच्छा प्राप्त करता है । फिर बूट ब्लॉक ( wait कार्य), जो मैं चाहता हूं (एक वेब सर्वर वेब अनुरोधों को संभालेगा) । और यहीं मैं खो गया हूं । बूट, डॉकर में, ब्लॉक के रूप में मैंने इसे पूछा है । लेकिन मैं बुनियादी नहीं लग सकता हैलो वर्ल्ड संदेश है कि एक रूट URI लौटना चाहिए.

$ docker run -p 127.0.0.1:8080:8080 beatthemarket run waitDownloading https://github.com/boot-clj/boot/releases/download/2.5.5/boot.jar...Retrieving dynapath-0.2.3.jar from https://clojars.org/repo/Retrieving pod-2.5.5.jar from https://clojars.org/repo/Retrieving shimdandy-impl-1.2.0.jar from https://repo1.maven.org/maven2/Retrieving core-2.5.5.jar from https://clojars.org/repo/...Implicit target dir is deprecated, please use the target task instead.Set BOOT_EMIT_TARGET=no to disable implicit target dir.

क्रोम, कर्ल और वेज सभी कहते हैं कि कनेक्शन से इनकार कर दिया गया है ।

$ curl http://127.0.0.1:8080/curl: (7) Failed to connect to 127.0.0.1 port 8080: Connection refused$ wget http://127.0.0.1:8080/--2016-04-21 20:07:32--  http://127.0.0.1:8080/Connecting to 127.0.0.1:8080... failed: Connection refused. 

आपको जोड़ना होगा EXPOSE पोर्ट 8080 के लिए आपके डॉकरफाइल का विवरण।

यहाँ डॉकर से संदर्भ है: https://docs.docker.com/engine/reference/builder/#expose

आपका अंतिम डॉकरफाइल इस तरह दिखना चाहिए:

FROM adzerk/boot-cljEXPOSE 8080WORKDIR /appCOPY . /app

-पी स्विच आपके डॉकर इंस्टेंस के लिए आपके होस्ट ब्रिजिंग के माध्यम से एक छेद पंच करेगा, - पी होस्ट_पोर्ट:डॉकर_इंस्टेंस_पोर्ट

अब आपको यह पता लगाना होगा कि आपका डॉकर होस्ट कहां रहता है । यदि आप वर्चुअलबॉक्स का उपयोग कर रहे हैं, तो चलाने का प्रयास करें :

डॉकर-मशीन एनवी

http://javagoogleappspot.blogspot.com/2018/07/docker-basics.html

@pratheek61 कोई परिणाम नहीं. ‘नेटस्टैट-ट्यूनल / ग्रेप 8080’ खाली लौटता है ।

आप यह कहना भूल गए कि जब आप सेवा से जुड़ने का प्रयास करते हैं तो क्या होता है ।

आप पोस्ट कर सकते हैं उत्पादन के लिए एक netstat -tunlp?

@MichaelHampton बिल्कुल. मैंने डॉकर आउटपुट जोड़ा है, और वेब सेवा से कनेक्ट करने का प्रयास करते समय कुछ भी नहीं होता है ।

प्रेटेक 61 ,मैं ओएसएक्स पर हूं, और जब मैं नेटस्टैट-ट्यूनलप चलाता हूं, तो यह मुझे बताता है नेटस्टैट: विकल्प के लिए एक तर्क की आवश्यकता होती है-पी

@prateek61 netstat -tunl | wc 500 से अधिक लाइनों । पूरी चीज को कॉपी करने में बहुत समय लगता है । लेकिन आउटपुट [इस तरह] दिखता है(http://pastebin.com/3gypz8Xg)।

फ्राइ क्या आप आउटपुट में 8080 सूचीबद्ध देखते हैं? कोशिश grepping के लिए यह.