Docker में नेटवर्क सेवाएँ उपलब्ध कराना

इंटरमीडिएट Docker

Mike Metzger

Data Engineering Consultant

Network services

  • नेटवर्क सेवाएँ दिए गए पोर्ट पर listen करती हैं
  • किसी भी समय केवल एक प्रोग्राम किसी IP:port कॉम्बो पर listen कर सकता है
    • जैसे, 10.1.2.3:80 का मतलब है IP 10.1.2.3 पर पोर्ट 80 पर listen करना।
  • मान लीजिए आप पोर्ट 80 पर listen करने वाले वेब सर्वर के अलग-अलग वर्ज़न debug करना चाहते हैं
    • चूँकि वह सिर्फ उसी पोर्ट पर listen करता है, एक समय में ऐप की केवल एक कॉपी चला सकते हैं
इंटरमीडिएट Docker

Containerized services

  • ऐप को कंटेनर में wrap करने से हर कंटेनर अब उस पोर्ट पर listen कर सकता है (IP:port अलग है, हर कंटेनर का IP अलग होता है)
  • एक साथ कई कंटेनर कॉपी चला सकते हैं
  • पर host से कंटेनर वाले ऐप से कनेक्ट कैसे करें?
इंटरमीडिएट Docker

Port mapping

  • इसका समाधान है port mapping, या port forwarding/translation
  • Port mapping किसी दिए गए IP:port पर आई कनेक्शन को अपने-आप दूसरे IP:port कॉम्बो पर भेज देता है
  • यहाँ, हम host पर कोई खाली पोर्ट map करके उसे कंटेनर के पोर्ट 80 पर point कर सकते हैं
  • अगर कॉन्फ़िगर करें, तो Docker engine इसे अपने-आप संभाल सकता है

Port mapping का उदाहरण

इंटरमीडिएट Docker

Port mapping सक्षम करना

  • किसी कंटेनर पर port mapping सक्षम करने के लिए docker run कमांड और -p फ़्लैग का उपयोग करें
  • -p <host port>:<container port>
  • -p 5501:80
  • अलग-अलग पोर्ट्स के लिए कई -p फ़्लैग दे सकते हैं
repl@host:~$ docker run -p 5501:80 nginx

repl@host:~$ docker ps -a
CONTAINER ID IMAGE ... PORTS NAMES 84266724ff47 nginx ... 0.0.0.0:5501->80/tcp, :::5501->80/tcp coiled_elgamal
इंटरमीडिएट Docker

अभ्यास करते हैं!

इंटरमीडिएट Docker

Preparing Video For Download...