172.17.0.0 सीमा का उपयोग नहीं करने के लिए डॉकर को कॉन्फ़िगर करना


22

कैप्टिव पोर्टल्स की समस्याओं के कारण और डिफ़ॉल्ट डॉकर आईपी रेंज मैं 172.17.0.0 के बजाय 198.18.0.0 रेंज का उपयोग करने की कोशिश कर रहा हूं, जो कि मेरे द्वारा जीते गए ट्रेनों पर उपयोग किए जाने वाले कैप्टिव पोर्टल्स के साथ संघर्ष करता है।

डॉक्स के बाद , मैंने बनाया /etc/docker/daemon.json, और उसमें निम्नलिखित डाला:

{
    "bip":"198.18.0.0/16"
}

यह docker0 के लिए काम करता है, लेकिन ऐसा लगता है कि यह किसी अन्य नेटवर्क को प्रभावित नहीं करता है, और docker की रचना से बना पहला नेटवर्क 172.17.0.0 है, जो क्लैश को फिर से बनाता है।

मैं सभी डॉक नेटवर्क के लिए डिफ़ॉल्ट सबनेट को बदलने के लिए क्या कर सकता हूं (अधिमानतः हर रचना फ़ाइल में मेरी कस्टम आईपी सीमा को बताए बिना)?

जवाबों:


27

डिफ़ॉल्ट सीमा को फिर से परिभाषित करना संभव है।

$ docker -v
Docker version 18.06.0-ce, build 0ffa825

डॉकटर डेमॉन के लिए कॉन्फिग फाइल को एडिट या क्रिएट करें:

# nano /etc/docker/daemon.json

लाइनें जोड़ें:

{
  "default-address-pools":
  [
    {"base":"10.10.0.0/16","size":24}
  ]
}

डॉकटर पुनः आरंभ करें:

# service docker restart

परिणाम की जाँच करें:

$ docker network create foo
$ docker network inspect foo | grep Subnet
                    "Subnet": "10.10.1.0/24"

यह डॉकटर-कंपोज के लिए भी काम करता है। अधिक जानकारी यहाँ https://github.com/moby/moby/pull/29376 (विलय)


1
वैश्विक डिफ़ॉल्ट नेटवर्क के साथ 10.10.0.0/16 ओवरलैप्स। आप {"आधार" का उपयोग कर सकते हैं: "192.168.0.0/16",1,253,003,00"। कृपया github.com/moby/moby/blob/…
Root G

11

वहाँ तीन स्थानों docker नेटवर्क सबनेट उत्पन्न होगा रहे हैं।

  • डिफ़ॉल्ट पुल
  • उपयोगकर्ता ने पुल नेटवर्क उत्पन्न किया
  • झुंड मोड ओवरले नेटवर्क उत्पन्न करता है

डिफ़ॉल्ट ब्रिज (जिसे "ब्रिज" कहा जाता है) के लिए, आप फ़ाइल में BIP (मेरा मानना ​​है कि ब्रिज आईपी है, यह सुनिश्चित कर सकते हैं कि यह एक होस्ट आईपी है, न कि नेटवर्क आईपी ) daemon.json। और उपयोगकर्ता द्वारा बनाए गए पुल नेटवर्क के लिए आप एक सबनेट पूल को चुनने के लिए परिभाषित कर सकते हैं (यह मानते हुए कि उपयोगकर्ता मैन्युअल रूप से सबनेट निर्दिष्ट नहीं करता है)। इन दोनों के लिए, आप की /etc/docker/daemon.jsonतरह दिखेगा:

{
  "bip": "10.200.0.1/24",
  "default-address-pools":[
    {"base":"10.201.0.0/16","size":24},
    {"base":"10.202.0.0/16","size":24}
  ]
}

प्रत्येक पता पूल सेटिंग ऊपर एक CIDR रेंज और उस रेंज से आवंटित होने वाले सबनेट के आकार को परिभाषित करता है। तो उपरोक्त दो वर्ग बी श्रेणी को परिभाषित करता है जिन्हें वर्ग सी नेटवर्क (/ 24) के रूप में आवंटित किया गया है। डिफ़ॉल्ट एड्रेस पूल के लिए आपको कम से कम 18.06 की आवश्यकता होती है। इस परिवर्तन को लागू करने ( systemctl reload docker) के लिए आपको docker daemon को पुनः लोड करना होगा । और यह परिवर्तन केवल नए बनाए गए उपयोगकर्ता नेटवर्क को संशोधित करेगा, इसलिए आपको कंटेनरों को बंद करने और मौजूदा नेटवर्क को गलत सीमा में हटाने की आवश्यकता होगी।


18.09 में, डॉकर ने झुंड मोड उत्पन्न ओवरले नेटवर्क के लिए पता सीमा निर्दिष्ट करने की क्षमता को जोड़ा। यह अभी केवल झुंड निर्माण के समय किया जा सकता है, उम्मीद है कि भविष्य में docker swarm updateइन पूलों को समायोजित करने की अनुमति देने के लिए इसे अपडेट किया जाएगा :

$ docker swarm init \
  --default-addr-pool 10.202.0.0/16 \
  --default-addr-pool 10.203.0.0/16 \
  --default-addr-pool-mask-length 24

1
वर्तमान 2018/2019 विकल्पों का शानदार सारांश। इसके अलावा, अगर डॉकर डेस्कटॉप का उपयोग करते हैं, तो bipसेटिंग्स / वरीयताएँ GUI में विकल्प। के लिए default-address-poolsआपको लगता है कि एक ही जीयूआई में मैन्युअल daemon.json संपादित कर सकते हैं, और झुंड के लिए है default-addr-poolआप अभी भी उन लोगों के साथ बदलने के initआदेश।
ब्रेट फिशर

1

कॉन्फ़िगर डिफ़ॉल्ट पुल नेटवर्क : "... डिफ़ॉल्ट पुल नेटवर्क कॉन्फ़िगर करने के लिए आपको daemon.json में विकल्प निर्दिष्ट यहां कई विकल्प निर्दिष्ट के साथ एक उदाहरण daemon.json है केवल सेटिंग की सहायता की जरूरत है निर्दिष्ट ...।।।"

रचना के साथ: कस्टम नेटवर्क निर्दिष्ट करें : "... डिफ़ॉल्ट ऐप नेटवर्क का उपयोग करने के बजाय, आप शीर्ष-स्तरीय नेटवर्क कुंजी के साथ अपने नेटवर्क को निर्दिष्ट कर सकते हैं। इससे आप अधिक जटिल टोपोलॉजी बना सकते हैं और कस्टम नेटवर्क ड्राइवर और विकल्प निर्दिष्ट कर सकते हैं। आप भी कर सकते हैं। बाहरी रूप से बनाए गए नेटवर्क से सेवाओं को जोड़ने के लिए इसका उपयोग करें जो कंपोज द्वारा प्रबंधित नहीं किए गए हैं।… "


क्या यह संभव है कि डॉकटर-कंपोज़ द्वारा उपयोग किए गए निहित नेटवर्क के लिए उपयोग की जाने वाली आईपी रेंज और उन लोगों के लिए जो स्पष्ट रूप से सेट की गई सीमा नहीं रखते हैं?
jrtapsell

-1

यह थोड़ा क्रूर हो सकता है, लेकिन मैं बस sudo ifconfig docker0 downउस इंटरफ़ेस को बंद करने के लिए करता हूं जो उस वाईफ़ाई के साथ संघर्ष करता है जिसका मैं उपयोग करने की कोशिश कर रहा हूं।


सवाल एक और सीमा का उपयोग करने का है, न कि नेटवर्किंग को बंद करने का।
राल्फफ्राइडल

@RalfFriedl यह सच है। लेकिन एक लगातार यात्री के रूप में जो कई अलग-अलग वाईफाई नेटवर्क का उपयोग करता है, मैंने देखा है कि सभी प्रकार के पोर्ट रेंज संघर्ष में हैं। इसलिए पोर्ट रेंज की खोज करने के बजाय, कोई अस्थायी रूप से नेटवर्क बंद कर सकता है।
फाल्को मेनज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.