जवाबों:
केवल एक पोर्ट को बेनकाब करने के लिए, आपको यही करना है:
docker run -p <host_port>:<container_port>
कई बंदरगाहों को उजागर करने के लिए, बस कई -p
तर्क दें:
docker run -p <host_port1>:<container_port1> -p <host_port2>:<container_port2>
Note: The -p flag can be used multiple times to configure multiple ports.
--env-file
?
publish
नहीं है expose
।
अपने में Dockerfile
, आप EXPOSE
कई बंदरगाहों को उजागर करने के लिए क्रिया का उपयोग कर सकते हैं ।
जैसे
EXPOSE 3000 80 443 22
फिर आप ऊपर आधारित एक नई छवि बनाना चाहेंगे Dockerfile
।
जैसे
docker build -t foo:tag .
फिर आप -p
कंटेनर पोर्ट के साथ होस्ट पोर्ट को मैप करने के लिए उपयोग कर सकते हैं , जैसा कि ऊपर में परिभाषित किया गया EXPOSE
है Dockerfile
।
जैसे
docker run -p 3001:3000 -p 23:22
यदि आप निरंतर बंदरगाहों की एक सीमा को उजागर करना चाहते हैं, तो आप इस तरह से डॉक चला सकते हैं:
docker run -it -p 7100-7120:7100-7120/tcp
यदि आप docker-compose.yml
फ़ाइल का उपयोग करते हैं:
services:
varnish:
ports:
- 80
- 6081
आप होस्ट / नेटवर्क पोर्ट भी निर्दिष्ट कर सकते हैं
varnish:
ports:
- 80:80
- 6081:6081
यदि आप एक छवि से एक कंटेनर बना रहे हैं और कई बंदरगाहों को उजागर करना चाहते हैं (प्रकाशित नहीं) तो आप निम्न कमांड का उपयोग कर सकते हैं:
container name
docker create --name --expose 7000 --expose 7001image name
अब, जब आप docker start
कमांड का उपयोग करके इस कंटेनर को शुरू करते हैं, तो ऊपर दिए गए कॉन्फ़िगर किए गए पोर्ट उजागर हो जाएंगे।