जब मैं सीधे अपने मेजबान पर डॉकर कंटेनर चला रहा हूं, तो बिना किसी समस्या के इसे कनेक्ट करना संभव है।डॉकर मशीन में होस्ट से डॉकर कंटेनर से जेएमएक्स से कैसे जुड़ें?
मेरे होस्ट में नेटवर्क 192.168.1.0/24 है और होस्ट का आईपी पता 192.168.1.20 है। मेरे डॉकर कंटेनर में आईपी पता 172.17.0.2 है। जब मैं jconsole से 172.17.0.2:1099 से कनेक्ट करता हूं तो यह काम करता है।
जब मैं इस सेवा को डॉकर मशीन में डालता हूं, तो उससे कनेक्ट करना संभव नहीं है।
माई डॉकर मशीन में आईपी 192.168.99.100 है और इसके कंटेनर में आईपी पता 172.17.0.2 है लेकिन जब मैं 1 9 2.168.99.100:1099 से कनेक्ट करने के लिए जेकनसोल का उपयोग करता हूं तो यह काम नहीं करता है।
यह दोहराने के लिए:
192.168.1.20 --- 172.17.0.2:1099 काम करता है
192.168.1.20 --- (192.168.99.100 --- 172.17.0.2:1099) और से कनेक्ट कर रहा मेरे मेजबान से 1 9 2.168.99.100:1099 काम नहीं करता है।
यह कहना उचित है कि मैं डॉकर मशीन के बाहरी आईपी पते के माध्यम से डॉकर मशीन में कंटेनरकृत सेवाओं तक पहुंच सकता हूं, उदा। इस काम करेगा:
192.168.99.100 --- (192.168.99.100:8080 --- 172.17.0.2:8080)
लेकिन यह सिर्फ काम नहीं करता है जब मैं JMX का उपयोग करें।
यह टोमकैट सेवा है। मैं स्क्रिप्ट जो बिलाव उदाहरण शुरू होता है में इस है:
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n \
-Dcom.sun.management.jmxremote.port=1099 \
-Dcom.sun.management.jmxremote.rmi.port=1099 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Djava.rmi.server.hostname=IP address of Docker container
यह डॉकर-जावा लाइब्रेरी द्वारा शुरू किया गया है ... यह इतना महत्वपूर्ण नहीं है, लेकिन जब मैं "डॉकर-मशीन एसएसएच" करता हूं और इसमें "डॉकर पीएस-ए" होता है तो मैं देख सकता हूं कि मेरे कंटेनर में यह पोर्ट बाइंडिंग/एक्सपोज़िंग: ad6be9184855 कंपनी/टोमकैट: 8.0.30 0.0.0.0:1099->1099/tcp, 0.0.0.0:8000->8000/tcp, 0.0.0.0:8009->8009/tcp, 0.0.0.0:8080->8080/tcp – stewenson