Docker केवल होस्ट करने के लिए एक पोर्ट एक्सपोज़ करता है


99

क्या डॉकटर केवल मेजबान के लिए एक बंदरगाह को उजागर करने में सक्षम है और बाहर नहीं।

मुझे एक मूंगो डेटाबेस के साथ चलने वाला एक डॉकटर लगाने की आवश्यकता है, और मैं चाहता था कि यह केवल होस्ट से ही सुलभ हो, लेकिन मुझे होस्ट पोर्ट 27017 से लिंक करना होगा।

क्या यह संभव है, या फ़ायरवॉल परिभाषाओं को बदलने का एकमात्र संभव तरीका है?

जवाबों:


141

ज़रूर, बस इसे localhostइस तरह से बांधें :

docker रन -p 127.0.0.1:27017:27017

इसके अलावा: आपका होस्ट प्रत्येक कंटेनर से सामान्य रूप से अपने IP पर बात कर सकता है। docker inspect $IDनेटवर्क IP युक्त json डंप (अन्य सामान के बगल में) प्राप्त करने के लिए उपयोग करें ।


4
तो क्या यह कुछ ऐसा है [1] docker run -p 27017: 27017 -v / var / lib / mongodb / master: / data mongo: storage_test / usr / bin / start-mongo [2]: docker run -p 127.0.0.1: 27017: 27017 ...?
रूबेन

17
दूसरा विकल्प लोकलहोस्ट को बांधता है, हाँ। पहला पोर्ट सार्वजनिक रूप से उपलब्ध कराता है। यदि आप एक स्थिर पोर्ट नहीं चाहते हैं, तो उपयोग करें 127.0.0.1::27017
जीसस

3
यह समाधान झुंड मोड के लिए काम करने के लिए प्रकट नहीं होता है इस github मुद्दे को
bsimpson53

1
समतुल्य docker- रचना बस है service-name: { ... ports: [ "127.0.0.1:27017:27017" ] }?
ग्रोस्तव

1
मेरे डॉकटर-कंपोज़ में क्या समस्या है, हालाँकि यह केवल लोकलहोस्ट से जुड़ा है लेकिन यह सार्वजनिक रूप से सुलभ है। stackoverflow.com/questions/50621936/…
तारा प्रसाद गुरुंग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.