मेरे डॉकटर कंटेनर में कोई इंटरनेट नहीं है


139

मैं यह सब ठीक काम कर रहा था, लेकिन अब यह बंद हो गया। मैंने बिना किसी लाभ के निम्नलिखित कमांड की कोशिश की:

docker run -dns 8.8.8.8 base ping google.com

docker run base ping google.com

sysctl -w net.ipv4.ip_forward=1 - दोनों मेजबान और कंटेनर पर

सब मुझे मिलता है unknown host google.com। डॉकर संस्करण 0.7.0

कोई विचार?

ufwसाथ ही PS अक्षम


9
आपके प्रश्न ने मेरी समस्या तय कर दी: sysctl -w net.ipv4.ip_forward=1(Centos 6 पर)
चलना था

चूँकि आपको docker dns रूटिंग में समस्या हो सकती है, इस तरह के समाधान stackoverflow.com/questions/35515203/…
Aditya Kresna Permana

उसी के बाद, जब मैंने होस्ट बॉक्स पर /etc/resolv.conf को ठीक किया तो यह बिना काम नहीं करेगाsysctl -w net.ipv4.ip_forward=1
Reeebuuk

यह भी जांच के लिए सही मान है /etc/resolv.confपर मेजबान मशीन
Hanxue

मेरे बाद sysctl -w net.ipv4.ip_forward=1मुझे दौड़ना पड़ा sudo service docker restart
आसिफ अली

जवाबों:


100

पहली बात यह है cat /etc/resolv.confकि डॉकटर कंटेनर में जांच की जाती है । यदि इसके पास एक अमान्य DNS सर्वर है, जैसे कि nameserver 127.0.x.x, तब कंटेनर डोमेन नामों को आईपी पते में हल करने में सक्षम नहीं होगा, इसलिए ping google.comविफल हो जाएगा।

जांच करने के लिए दूसरी चीज मेजबान मशीनcat /etc/resolv.conf पर चलाई जाती है । डॉकर मूल रूप से होस्ट के कंटेनर को कॉपी करता है हर बार एक कंटेनर शुरू किया जाता है। इसलिए यदि मेजबान की गलती गलत है, तो ऐसा करने वाला कंटेनर होगा।/etc/resolv.conf/etc/resolv.conf

यदि आपने पाया है कि मेजबान /etc/resolv.confगलत है, तो आपके पास 2 विकल्प हैं:

  1. DNS सर्वर को daemon.json में हार्डकोड करें। यदि आप DNS सर्वर को बदलने की अपेक्षा करते हैं तो यह आसान है, लेकिन आदर्श नहीं है।

  2. मेजबानों को ठीक करें /etc/resolv.conf। यह थोड़ा पेचीदा मामला है, लेकिन यह गतिशील रूप से उत्पन्न होता है, और आप DNS सर्वर को हार्डकोड नहीं कर रहे हैं।


1. docker daemon.json में हार्डकोड DNS सर्वर

  • संपादित करें /etc/docker/daemon.json

    {
        "dns": ["10.1.2.3", "8.8.8.8"]
    }
    
  • उन परिवर्तनों को प्रभावी करने के लिए docker daemon को पुनः आरंभ करें:
    sudo systemctl restart docker

  • अब जब आप एक कंटेनर चलाते हैं / शुरू करते हैं, तो docker /etc/resolv.confमानों से पॉप्युलेट होगा daemon.json


2. मेजबानों को ठीक करें /etc/resolv.conf

उ। Ubuntu 16.04 और पहले का

  • Ubuntu 16.04 और इससे पहले के लिए, /etc/resolv.confगतिशील रूप से NetworkManager द्वारा उत्पन्न किया गया था।

  • में dns=dnsmasq(क #) के साथ लाइन से बाहर टिप्पणी करें/etc/NetworkManager/NetworkManager.conf

  • पुनर्जीवित करने के लिए NetworkManager को पुनः आरंभ करें /etc/resolv.conf:
    sudo systemctl restart network-manager

  • मेजबान पर सत्यापित करें: cat /etc/resolv.conf

बी। उबंटू 18.04 और बाद में

  • उबंटू 18.04 systemd-resolvedको जेनरेट करने के/etc/resolv.conf लिए उपयोग में लाया गया । अब डिफ़ॉल्ट रूप से यह स्थानीय DNS कैश 127.0.0.53 का उपयोग करता है। यह एक कंटेनर के अंदर काम नहीं करेगा, इसलिए डॉकर Google के 8.8.8.8 DNS सर्वर को डिफ़ॉल्ट करेगा, जो एक फ़ायरवॉल के पीछे के लोगों के लिए टूट सकता है।

  • /etc/resolv.confउबंटू 18.04 में डिफ़ॉल्ट रूप ls -l /etc/resolv.confसे /run/systemd/resolve/stub-resolv.conf(127.0.0.53) को इंगित करता है जो वास्तव में एक सिमलिंक ( ) है ।

  • सिर्फ़िन को इंगित करने के लिए बदलें /run/systemd/resolve/resolv.conf, जो वास्तविक DNS सर्वरों को सूचीबद्ध करता है:
    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

  • मेजबान पर सत्यापित करें: cat /etc/resolv.conf

अब आपके पास /etc/resolv.confडॉकटरों को कंटेनरों में कॉपी करने के लिए होस्ट पर मान्य होना चाहिए ।


1
इसने समस्या को हल किया 16 Ubuntu पर डॉकर 17.09 के साथ।
लुइस डी सूसा

2
इससे मेरी समस्या हल हो गई (ओपी, उबंटू 14.04 / डॉकर 18.01.0-सीई के समान)। यह लिंक पिंग के बिना उपयोगी परीक्षण इंटरनेट कनेक्शन हो सकता है यदि आपके पास अपनी डॉक छवि पर पिंग कमांड नहीं है। अगर आपके मेजबान के पास systemctl(Ubuntu 14.04) नहीं है, तो नेटवर्किंग सेवा को कैसे पुनः आरंभ करें? और / या कंप्यूटर को पुनरारंभ करें।
बेंजामिन

एक जादू की तरह काम किया!
गृहिणी

1
यह उबंटू 18.04 (विकल्प बी) पर काम करता है। हालाँकि डॉकटर ने /etc/resolv.confनिर्माण पर अब कंटेनर को सही स्थानांतरित नहीं किया , मुझे फ़ाइल को कंटेनर में मैन्युअल रूप से कॉपी करना पड़ा।
glaux

1
मेरी मशीन (RedHat 7.4) पर होस्ट की कॉन्फ़िगरेशन फ़ाइल सही है, लेकिन कंटेनर फ़ाइल अभी भी 172.0.0.11 की ओर इशारा कर रही है। तो अब क्या करना है?
मार्टिन माजूस्की

90

इस सलाह का पालन करके तय किया गया:

[...] क्या आप सब कुछ रीसेट करने का प्रयास कर सकते हैं?

pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d

यह पुल को फिर से बनाने और सभी नेटवर्क नियमों को मजबूत करने के लिए डॉकटर को मजबूर करेगा

https://github.com/dotcloud/docker/issues/866#issuecomment-19218300

लगता है कि इंटरफ़ेस किसी भी तरह 'लटकाया' गया था।

Docker के अधिक हाल के संस्करणों के लिए अपडेट करें:

उपरोक्त उत्तर अभी भी आपके लिए काम कर सकता है, लेकिन इस उत्तर को पोस्ट किए हुए काफी समय हो गया है और डॉकटर अब और अधिक पॉलिश हो गया है, इसलिए सुनिश्चित करें कि आप इन iptablesसभी के साथ पहले ही प्रयास कर लें ।

sudo service docker restart या (यदि आप एक linux distro में हैं जो upstart का उपयोग नहीं करता है) sudo systemctl restart docker


31
docker -dविफल रहता है। कोई -dझंडा नहीं है ।
लुइस डी सूसा

1
उन लोगों के लिए जो अभी भी इस मुद्दे पर हैं, मोबी के गीथब पर एक खुला मुद्दा है जो अब एक वर्ष से अधिक समय के लिए खोला गया है: github.com/moby/moby/issues/26567
Nepoxx

1
@ पवन:ip link del docker0
drewrockshard

1
या पुल-
बर्तन

5
docker -dनए संस्करणों में मौजूद नहीं है। इसके बजाय: service docker stopहै, तो dockerd, तोservice docker start
टेलमो Marques

64

Docker को पुनरारंभ करने का अभीष्ट तरीका मैन्युअल रूप से नहीं करना है, लेकिन serviceinit कमांड का उपयोग करना है :

service docker restart

5
यदि आप एक linux distro में हैं जो upstart का उपयोग नहीं करता है, sudo systemctl पुनरारंभ docker ने मेरे लिए काम किया
jeffrey

रीस्टार्टिंग ने ठीक काम किया। मुझे नहीं पता कि इसका इस तथ्य से कोई लेना-देना है कि मैंने इसे "ऑटो स्टार्ट" के लिए सक्षम किया है ( systemctl enable docker)
लुकास पॉटरस्की

ओपी के सवाल के लिए प्रासंगिक नहीं लगता है।
केविन बुक्स

यह थोड़े करता है, क्योंकि जिस स्थिति में ओपी वर्णन कर रहा है, डॉकटर रीसेट करना नेटवर्क इंटरफेस को फिर से संगठित करता है, इसलिए इंटरनेट एक्सेस को फिर से सक्षम कर रहा है। यह सच है कि यह पता नहीं क्यों यह कभी-कभी टूट जाता है, लेकिन यह समस्या का समाधान प्रदान करता है।
bitmask

लेकिन उत्पादन के माहौल में, पुनः आरंभ करने वाला असंभव है। इस मामले पर समस्या को कैसे हल किया जाए?
सुयनहंस

22

OSX के लिए एक उत्तर के साथ इस प्रश्न को अद्यतन करना (डोकर मशीन का उपयोग करके)

यदि आप डोकर मशीन का उपयोग करके OSX पर डॉकर चला रहे हैं, तो निम्नलिखित मेरे लिए काम करते हैं:

docker-machine restart

<...wait for it to restart, which takes up to a minute...>

docker-machine env
eval $(docker-machine env)

तब (कम से कम मेरे अनुभव में), अगर आप google.com को एक कंटेनर से पिंग करते हैं तो सब ठीक हो जाएगा।


साथ ही नेटवर्क एक्सेस को फिर से काम करने के लिए विंडोज़ में काम किया।
मिकेल लेपिस्टॉ

1
मेरे लिए यही काम किया। मेरे पास शीर्ष मेनू बार में एक डॉक-आइकन है, मेनू में मेरे पास "पुनरारंभ" विकल्प था। उसके बाद, नेटवर्किंग फिर से ठीक थी
olidemem

8

मुझे नहीं पता कि मैं क्या कर रहा हूं लेकिन मेरे लिए यह काम कर रहा है:

OTHER_BRIDGE=br-xxxxx # this is the other random docker bridge (`ip addr` to find)    
service docker stop

ip link set dev $OTHER_BRIDGE down
ip link set dev docker0 down
ip link delete $OTHER_BRIDGE type bridge
ip link delete docker0 type bridge
service docker start && service docker stop

iptables -t nat -A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE
iptables -t nat -A POSTROUTING ! -o docker0 -s 172.18.0.0/16 -j MASQUERADE

service docker start

2
अच्छा डक्ट टेप!
dctremblay

1
आपने जवाब दिया कि इसी तरह के मुद्दे को हल करने में मदद की। मैंने उस पर घंटों बिताए! अपूर्ण क्यूब्सप्राय स्थापना के बाद, डॉकर कंटेनर किसी भी सार्वजनिक होस्ट या आईपी को पिंग करने की कोशिश करते समय "अस्थायी विफलता का समाधान" संदेश के साथ इंटरनेट खो देते हैं। इसलिए मेरा यह नियम नहीं था जो अनिवार्य है - iptables -t nat -A POSTROUTING ! -o docker0 -s 172.17.0.0/16 -j MASQUERADE। आप देख सकते हैं आप के साथ इस नियम हैiptables -t nat -L POSTROUTING
laimison

6

मैं उपयोग कर रहा था DOCKER_OPTS="--dns 8.8.8.8"और बाद में पता चला कि मेरे कंटेनर में इंटरनेट तक सीधी पहुंच नहीं थी लेकिन मैं अपने कॉर्पोरेट इंट्रानेट तक पहुंच सकता था। मैं DOCKER_OPTSनिम्नलिखित में बदल गया:

DOCKER_OPTS="--dns <internal_corporate_dns_address"

internal_corporate_dns_addressहमारे DNS के IP पते या FQDN के साथ प्रतिस्थापित करना और पुनः आरंभ करने वाले docker का उपयोग करना

sudo service docker restart

और फिर मेरे कंटेनर को देखा और जाँच की कि उसमें इंटरनेट की सुविधा है।


5

जब मेरे लिए मेरे एक कंटेनर के लिए यह बेतरतीब ढंग से हुआ, तो मैं स्तब्ध था, जबकि अन्य कंटेनर ठीक थे। कंटेनर कम से कम एक गैर-आंतरिक नेटवर्क से जुड़ा था , इसलिए Composeपरिभाषा में कुछ भी गलत नहीं था । वीएम / डॉकटर डेमॉन को फिर से शुरू करने से मदद नहीं मिली। यह DNS मुद्दा भी नहीं था क्योंकि कंटेनर pingबाहरी IP भी नहीं कर सकता था । मेरे लिए इसे हल करने के लिए docker network (s) को फिर से बनाना था। मेरे मामले में, docker-compose down && docker-compose upकाम किया।

लिखें

यह सभी कंटेनरों के सभी नेटवर्क के मनोरंजन को मजबूर करता है:

docker-compose down && docker-compose up

झुंड मोड

मुझे लगता है कि आप बस सेवा को हटा देंगे और पुनः बनाएंगे, जो सेवा के नेटवर्क को फिर से बनाता है:

docker service rm some-service

docker service create ...

यदि कंटेनर का नेटवर्क बाहरी है

बस उस सेवा के बाहरी नेटवर्क को हटा दें और पुनः बनाएँ:

docker network rm some-external-network

docker network create some-external-network


4

मेरे लिए यह मेजबान का फ़ायरवॉल था। मुझे होस्ट के फ़ायरवॉल पर DNS की अनुमति देनी थी। और होस्ट फ़ायरवॉल सेटिंग को बदलने के बाद भी docker को पुनरारंभ करना होगा।


या आप ( sudo service iptables stopऔर sudo chkconfig iptables offCentOS / RHEL पर) iptables को निष्क्रिय कर सकते हैं ।
माइकल शू

4

प्रॉक्सी सेटिंग्स गायब होने के कारण कोई इंटरनेट एक्सेस भी नहीं हो सकता है । उस स्थिति में, --network hostकाम भी नहीं हो सकता है। प्रॉक्सी को पर्यावरण चर को सेट करके कॉन्फ़िगर किया जा सकता है http_proxyऔर https_proxy:

docker run -e "http_proxy=YOUR-PROXY" \
           -e "https_proxy=YOUR-PROXY"\
           -e "no_proxy=localhost,127.0.0.1" ... 

साथ ही साथ no_proxy या सभी सेट करना न भूलें अनुरोध ( सहित) प्रॉक्सी के माध्यम से जाएंगे।

अधिक जानकारी: आर्कलिनक्स विकी में प्रॉक्सी सेटिंग्स


1
मेरे लिए यही समाधान था। हालांकि खबरदार: मैं अल्पाइन का उपयोग कर रहा था, जिसमें प्रॉक्सी सेटिंग्स को नजरअंदाज करने के लिए दिखाई देने वाले विगेट का एक कार्यान्वयन है, इसलिए मुझे पर्यावरण चर सेट होने का लाभ नहीं दिखाई दे रहा था।
१०:

बिजीबॉक्स के बारे में संकेत के लिए धन्यवाद; मुझे इसके बारे में अभी तक पता नहीं था!
साइमन ए। युगस्टर

1
इस बात से अवगत रहें कि कुछ ओएस को प्रलेखन लिंक में ऊपरी मामले की आवश्यकता होती है ।
फ़्लो

3

मेरे लिए यह एक iptables अग्रेषण नियम था। किसी कारण के लिए निम्न नियम, जब डॉकर्स के iptables नियमों के साथ युग्मित होता है, तो कंटेनर से सभी आउटबाउंड ट्रैफ़िक को हिट करने का कारण बनता है localhost:8080:

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j REDIRECT --to-ports 8080

3
तो ... क्या उपाय है? :) मेरे पास पहला नियम है और इसे 80 से 8080 पर इनबाउंड ट्रैफिक को पुनर्निर्देशित करने की आवश्यकता है। मैं इसे आउटबाउंड ट्रैफ़िक को प्रभावित नहीं करने के लिए कैसे बदलूं?
मैरोनी

3

मुझे उबंटू 18.04 पर समस्या थी। हालाँकि समस्या DNS के साथ थी। मैं एक कॉर्पोरेट नेटवर्क में था जिसका अपना DNS सर्वर है और अन्य DNS सर्वरों को ब्लॉक करता है। यह कुछ वेबसाइटों (अश्लील, torrents, ... इत्यादि) को ब्लॉक करने के लिए है

अपनी समस्या को हल करने के लिए

  1. होस्ट मशीन पर अपना DNS खोजें
  2. @jobin द्वारा सुझाए गए अनुसार आपके -dns का उपयोग करें

    docker run --dns your_dns -it --name cowsay --hostname cowsay debian bash


2

विंडोज़ (8.1) पर मैंने वर्चुअलबॉक्स इंटरफ़ेस (टास्कमार्ग के माध्यम से) को मार दिया और इसने समस्या को हल कर दिया।


2

आपने अपने docker को dns विकल्पों के साथ शुरू किया होगा --dns 172.x.x.x

मेरे पास एक ही त्रुटि थी और विकल्पों को हटा दिया /etc/default/docker

रेखाएं:

# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 172.x.x.x"

2

Ubuntu 19.04 के लिए वीपीएन के लिए openconnect 8.3 का उपयोग करते हुए, मुझे सिम्डलिंक /etc/resolve.conf को systemd में एक (उत्तरवर्ती वैंक्युकी के विपरीत) को सिमिलर करना था

sudo ln -sf /etc/resolv.conf /run/systemd/resolve/resolv.conf

डिबग करने के लिए कदम

  1. कंपनी वीपीएन से कनेक्ट करें
  2. /Etc/resolv.conf या /run/systemd/resolve/resolv.conf में सही वीपीएन सेटिंग्स देखें
  3. जिसकी भी सही डीएनएस सेटिंग होगी, हम उसे दूसरी फाइल से जोड़ देंगे (संकेत: असाइनमेंट के बाईं ओर सही सेटिंग्स के साथ एक रखें)

डॉकर संस्करण: डॉकर संस्करण 19.03.0-rc2, f97efcc का निर्माण करें


2
धन्यवाद। उबंटू 18.04 के साथ, केवल कंपनी वीपीएन से कनेक्ट होने पर /etc/resolve.conf डीएचसीपी द्वारा अद्यतन हो रहा था और / रन / सिस्टमड / संकल्प / संकल्प / आत्मविश्वास स्थिर / स्थिर रहा। इस समाधान से मदद मिली। अब, स्थानीय मशीन में कंटेनर वीपीएन में सर्वर से जुड़ते हैं (जो मेरे लिए
इयरलर

1

यदि आप OSX पर हैं, तो आपको डॉकर को स्थापित करने के बाद अपनी मशीन को पुनः आरंभ करने की आवश्यकता हो सकती है। यह कई बार एक मुद्दा रहा है।


1

मूल रूप से मेरा डॉकटर कंटेनर बाहरी इंटरनेट तक पहुंचने में सक्षम था (यह अमेज़ॅन ईसी 2 पर चलने वाला डॉकटर सेवा / कंटेनर है)।

चूँकि मेरा ऐप एक एपीआई है, मैंने अपने कंटेनर के निर्माण का पालन किया (यह अपने सभी ज़रूरी पैकेजों को खींचने में सफल रहा) अपने आईपी टेबल्स को पोर्ट 80 से पोर्ट तक सभी ट्रैफ़िक को रूट करने के लिए अपडेट करने के साथ कि मेरा एपीआई (डॉक पर चल रहा था) सुन रहा है।

फिर, बाद में जब मैंने कंटेनर के पुनर्निर्माण की कोशिश की तो वह विफल हो गया। बहुत संघर्ष के बाद, मुझे पता चला कि मेरे पिछले कदम (IPTable पोर्ट फॉरवर्डिंग रूल की स्थापना) ने डॉकर की बाहरी नेटवर्किंग क्षमता को गड़बड़ कर दिया।

समाधान: अपनी IPTable सेवा बंद करें:

sudo service iptables stop

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

sudo service docker restart

फिर, अपने कंटेनर के पुनर्निर्माण का प्रयास करें। उम्मीद है की यह मदद करेगा।


जाँच करना

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

docker run -d -p 80:<api_port> <image>:<tag> <command to start api>


1

बस इसे जोड़ने के मामले में कोई इस मुद्दे में एक वर्चुअलबॉक्स कंटेनर के भीतर चल रहा है। मैंने नेट के बजाय ब्रिजबॉक्स के लिए वर्चुअलबॉक्स नेटवर्क को फिर से कॉन्फ़िगर किया और समस्या दूर हो गई।


1

मेरे लिए, मेरी समस्या यह थी कि iptables- सेवाओं को स्थापित नहीं किया गया था, इसने मेरे (CentOS) के लिए काम किया:

sudo yum install iptables-services
sudo service docker restart

याद रखें शुरू और iptable सेवाओं को भी सक्षम करें
Jay

1

सेंटोस 8 पर, मेरी समस्या यह थी कि मैंने docker सेवा शुरू करने से पहले iptables स्थापित नहीं किया था। सुनिश्चित करें कि आईपैक सेवा शुरू करने से पहले iptables सेवा ऊपर और चल रही है।


0

मुझे इस तरह के मुद्दे का सामना करना पड़ा, जबकि उबंटू पर डोकर-कम्पोज का उपयोग करके एक परियोजना स्थापित करने की कोशिश की गई।

डॉकटर के पास इंटरनेट तक कोई पहुंच नहीं थी, जब मैंने किसी भी आईपी पते को पिंग करने की कोशिश की या कुछ URL को अनदेखा किया - यह हर समय विफल रहा।

मैंने ऊपर दिए गए DNS रिज़ॉल्यूशन के सभी संभावित समाधानों की कोशिश की, जिनका कोई फायदा नहीं हुआ।

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

जब मैंने इसे निष्क्रिय कर दिया - सब कुछ ठीक काम किया।

इसलिए, यदि आपके पास एक एंटीवायरस स्थापित है और कुछ भी समस्या को ठीक करने में मदद नहीं करता है - तो समस्या एंटीवायरस के फ़ायरवॉल की हो सकती है।


0

मुझे पिछले कुछ दिनों से ऐसी ही समस्या थी। मेरे लिए इसका कारण सिस्टमड, डॉकटर और मेरे होस्टिंग प्रदाता का संयोजन था। मैं अप-टू-डेट CentOS (7.7.1908) चला रहा हूं।

मेरा होस्टिंग प्रदाता स्वचालित रूप से systemd-networkd के लिए एक कॉन्फिगर फाइल बनाता है। सिस्टमड 219 से शुरू होता है जो कि CentOS 7 के लिए वर्तमान संस्करण है, सिस्टमड-नेटवर्कड ने नेटवर्क-संबंधित sysctl मापदंडों को नियंत्रित किया। डॉकर इस संस्करण के साथ असंगत लग रहा है और आईपी-फ़ॉरवर्डिंग झंडे को रीसेट कर देगा, जहां हर बार एक कंटेनर लॉन्च किया जाता है।

मेरा समाधान मेरे प्रदाता द्वारा बनाई गई कॉन्फ़िगर फ़ाइल IPForward=trueकी [Network]-section में जोड़ना था । यह फ़ाइल कई स्थानों पर हो सकती है, सबसे अधिक संभावना है/etc/systemd/network

इस प्रक्रिया को आधिकारिक docker डॉक्स में भी वर्णित किया गया है: https://docs.docker.com/v17.09/engine/installation/linux/linux-postinstall/#ip-forwarding-problems


क्या आप कृपया उस सटीक स्थान को निर्दिष्ट कर सकते हैं जिसे आपने यह पैरामीटर सेट किया है? मैं ठीक वैसा ही स्थान पा रहा हूं, जैसे आप Google क्लाउड प्लेटफॉर्म पर VM चला रहे हैं और सर्वर पर कोई * .network फाइलें नहीं पा रहे हैं। केवल /usr/lib/sysctl.d/50-default.confलेकिन सिंटेक्स अलग है।
el.severo

मेरा क्लस्टर स्व-प्रबंधित है और मेरा प्रदाता केवल सेटअप पर बुनियादी बूटस्ट्रैपिंग करता है। /etc/systemd/network/10-mainif.networkमेरे लिए नेटवर्क कॉन्फ़िगरेशन चालू था । अन्य स्थानों को आप देख सकते हैं /usr/local/lib/systemd/और /usr/lib/systemd/सिस्टमडाउन पेज के अनुसार हैं।
BlackCetha

0

मेरे लिए, सेंटो 7.4 का उपयोग करते हुए, यह /etc/resolve.conf, iptables, iptables nat रूल्स का न तो मुद्दा था और न ही docker का। मुद्दा यह है कि मेजबान को पैकेज ब्रिज-यूटल्स की कमी है, जो कमांड ब्रैकल का उपयोग करके पुल का निर्माण करने के लिए आवश्यक है। yum install -y Bridge-utils और पुनरारंभ docker, समस्या को हल करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.