डॉकर 7000 से 8000 तक सभी बंदरगाहों या बंदरगाहों की सीमा को उजागर करता है


97

क्या मैं डॉकरीफाइल में पोर्ट रेंज निर्दिष्ट कर सकता हूं

EXPOSE 7000-8000

और जब कंटेनर चल रहा है तो इन सभी उजागर बंदरगाहों को मेजबान मशीन पर समान बंदरगाहों पर बाँध दें?

docker run -p 7000-8000:7000-8000

जवाबों:


133

Docker 1.5 के बाद से आप अब एक्सपोज़ कर सकते हैं का उपयोग कर लिंक किए गए अन्य कंटेनरों को बंदरगाहों की एक सीमा:

Dockerfile बेनकाब आदेश:

EXPOSE 7000-8000

या डॉकर रन कमांड:

docker run --expose=7000-8000

या इसके बजाय आप डॉकरी रन कमांड के माध्यम से मेजबान मशीन को कई पोर्ट प्रकाशित कर सकते हैं :

docker run -p 7000-8000:7000-8000


14
होस्ट मशीन पर "iptables -L -n" के आउटपुट की जांच करें और आपको सिंगल पोर्ट मैपिंग के लिए सैकड़ों लाइनें दिखाई देंगी। यदि आप 5000-50000 देते हैं, तो व्यावहारिक रूप से आपको लंबे समय तक इंतजार करना होगा। क्या यह माना व्यवहार है?
at देवमरीबारिस

8
@ Do देवमृबरिस प्रति पोर्ट एक डॉकटर प्रक्रिया शुरू की जा रही है । मेरा मानना ​​है कि यह वही है जो काम का अधिकांश समय लेता है।
मैट

1
डॉक्स उस --publish-all , -Pध्वज के बारे में बात करते हैं जो "सभी उजागर बंदरगाहों को यादृच्छिक बंदरगाहों पर प्रकाशित करता है"। docs.docker.com/engine/reference/commandline/run
nils petersohn

2

किसी को भी इस मुद्दे का सामना करने और इस पद पर समाप्त होने के लिए ... मुद्दा अभी भी खुला है - https://github.com/moby/moby/issues/11185


आपका बहुत-बहुत धन्यवाद। मैं पागल हो रहा था क्योंकि एक हजार बंदरगाहों की एक सीमा को उजागर करने की कोशिश में सब कुछ फंस गया।
सूरसो
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.