कई आईपी पते के साथ डॉकर नोड-उनके बीच स्विचिंग

मेरा नेटवर्क कॉन्फ़िगरेशन डॉकर होस्ट पर कुछ इस तरह दिखता है:

➜  server git:(master) ✗ ip addr3: ens9: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000    link/ether 00:02:c9:bb:3b:f4 brd ff:ff:ff:ff:ff:ff    inet <IP Address>.18/29 brd <Default Gateway>.23 scope global ens9       valid_lft forever preferred_lft forever    inet <IP Address>.19/29 brd <Default Gateway>.23 scope global secondary ens9:0       valid_lft forever preferred_lft forever

वर्तमान में, मेरे पास मौजूदा गैर-डॉकर सेवाएं पोर्ट पर चल रही हैं 443 पर .18 आईपी पता, और मुझे इसे इस तरह रखना होगा । हालांकि, जब मैं एक का उपयोग कर एक बंदरगाह खोलता हूं Dockerfile, यह शुरू करने में विफल रहता है क्योंकि पोर्ट 443 पहले से ही मेजबान द्वारा उपयोग में है ।

क्या वैश्विक रूप से आईपी पते को स्विच करने का एक तरीका है जो पोर्ट को खोलते समय डॉकर का उपयोग करता है? मैं इसे प्रत्येक कंटेनर की कॉन्फ़िगरेशन फ़ाइल पर मैन्युअल रूप से सेट नहीं करना चाहता, जो निश्चित रूप से पहले से ही काम करता है ।

सेवा घोषणा पर कुछ कंटेनरों तक पहुंचने के लिए आपको बंदरगाहों को उजागर करने की आवश्यकता नहीं है । वास्तव में, आप एक एकल डॉकर-रचना के अंदर एक नेटवर्क घोषित कर सकते हैं । इस तरह एक अलग सबनेट के साथ वाईएमएल:

version: '2'networks:  custom-network:    ipam:      driver: default      config:        - subnet: 73.0.0.0/16          ip_range: 73.0.0.0/24          gateway: 73.0.0.254services:  simple-nginx:    image: nginx    networks:      custom-network:        ipv4_address: 73.0.0.10

और स्थिर आईपी का उपयोग करके एनजीआईएनएक्स सेवा तक पहुंचें 73.0.0.10 कस्टम-नेटवर्क के लिए ।

अधिक जानकारी के लिए, आप हमेशा डॉकर-कंपोज़ के लिए नेटवर्किंग डॉक्स देख सकते हैं:https://docs.docker.com/compose/networking/

या सीधे डॉकर डॉक्स:https://docs.docker.com/engine/userguide/networking/