আমার ডকারের ধারকটির কোনও ইন্টারনেট নেই


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অক্ষমও


9
আপনার প্রশ্নটি আমার সমস্যার সমাধান করেছে: দৌড়াতে হয়েছিল sysctl -w net.ipv4.ip_forward=1(সেন্টোস on এ)
কিওয়ার্টজগুই

আপনি Docker DNS রাউটিং সঙ্গে সমস্যা থাকতে পারে যেহেতু, এই অনুরূপ সমাধান পরীক্ষা stackoverflow.com/questions/35515203/...
আদিত্য Kresna Permana

এখানেও, আমি হোস্ট বক্সে /etc/resolv.conf ঠিক করার পরে এটি ছাড়া কাজ করবে নাsysctl -w net.ipv4.ip_forward=1
রেইবুক

হোস্ট মেশিনে /etc/resolv.confআপনার জন্য সঠিক মান রয়েছে
তাও পরীক্ষা করে দেখুন

আমার sysctl -w net.ipv4.ip_forward=1জন্য দৌড়ানোর পরে sudo service docker restart
আসিফ আলী

উত্তর:


100

চেক করার জন্য প্রথম জিনিসটি ডকারের পাত্রে চালানো cat /etc/resolv.confহয় । যদি এটিতে কোনও অবৈধ ডিএনএস সার্ভার থাকে তবে কনটেইনারটি ডোমেনের নামগুলি আইপি অ্যাড্রেসে সমাধান করতে সক্ষম হবে না, তাই ব্যর্থ হবে।nameserver 127.0.x.xping google.com

যাচাই করুন দ্বিতীয়ত জিনিস চালানো হয় cat /etc/resolv.confউপর হোস্ট মেশিনের । ডকার মূলত হোস্টের /etc/resolv.confকন্টেইনারটিতে প্রতিবার একটি পাত্র শুরু হওয়ার পরে অনুলিপি করে । তাই হোস্টের /etc/resolv.confযদি ভুল হয়, তবে ডকারের ধারকটিও তাই হবে।

যদি আপনি খুঁজে পেয়েছেন যে হোস্টটি /etc/resolv.confভুল, তবে আপনার কাছে দুটি বিকল্প রয়েছে:

  1. ডিমন.জেসনে ডিএনএস সার্ভারকে হার্ডকোড করুন। এটি সহজ, তবে আপনি যদি ডিএনএস সার্ভারের পরিবর্তনের প্রত্যাশা করেন তবে আদর্শ নয়।

  2. হোস্টদের ঠিক করুন /etc/resolv.conf। এটি সামান্য কৌশলযুক্ত, তবে এটি গতিশীলভাবে উত্পন্ন হয়েছে এবং আপনি ডিএনএস সার্ভারকে হার্ডকডিং করছেন না।


1. ডকার ডেমন.জেসনে হার্ডকোড ডিএনএস সার্ভার

  • সম্পাদন করা /etc/docker/daemon.json

    {
        "dns": ["10.1.2.3", "8.8.8.8"]
    }
    
  • এই পরিবর্তনগুলি কার্যকর করতে ডকার ডেমন পুনরায় চালু করুন:
    sudo systemctl restart docker

  • এখন আপনি যখন কোনও ধারক চালাবেন / শুরু করবেন, ডকার /etc/resolv.confএখানকার মানগুলি নিয়ে আসে daemon.json


2. হোস্টদের ঠিক করুন /etc/resolv.conf

উঃ উবুন্টু 16.04 এবং তার আগেরটি

  • উবুন্টু 16.04 এবং তার আগে এর জন্য, /etc/resolv.confনেটওয়ার্কম্যানেজার দ্বারা গতিশীলভাবে উত্পাদিত হয়েছিল।

  • লাইনটি dns=dnsmasq(ক #) দিয়ে মন্তব্য করুন/etc/NetworkManager/NetworkManager.conf

  • পুনরায় তৈরি করতে নেটওয়ার্ক ম্যানেজার পুনরায় চালু করুন /etc/resolv.conf:
    sudo systemctl restart network-manager

  • হোস্টটিতে যাচাই করুন: cat /etc/resolv.conf

বি উবুন্টু 18.04 এবং তারপরে

  • উবুন্টু 18.04 systemd-resolvedউত্পাদনের/etc/resolv.conf জন্য ব্যবহারের পরিবর্তিত হয়েছে । এখন ডিফল্টরূপে এটি একটি স্থানীয় ডিএনএস ক্যাশে 127.0.0.53 ব্যবহার করে। এটি কোনও ধারকটির অভ্যন্তরে কাজ করবে না, সুতরাং ডকার গুগলের 8.8.8.8 ডিএনএস সার্ভারে ডিফল্ট হবে যা ফায়ারওয়ালের পিছনে লোকদের জন্য ভেঙে যেতে পারে।

  • /etc/resolv.confআসলে একটি সিমিলিংক ( ls -l /etc/resolv.conf) যা /run/systemd/resolve/stub-resolv.confউবুন্টু 18.04 এ ডিফল্টরূপে (127.0.0.53) নির্দেশ করে।

  • কেবলমাত্র সিমলিংকটিকে নির্দেশ করুন /run/systemd/resolve/resolv.conf, যা আসল ডিএনএস সার্ভারের তালিকা করে:
    sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

  • হোস্টটিতে যাচাই করুন: cat /etc/resolv.conf

/etc/resolv.confপাত্রে অনুলিপি করার জন্য এখন আপনার কাছে হোকারের বৈধ হওয়া উচিত valid


1
এটি ডাবর 17.09 দিয়ে উবুন্টু 16.04 এ সমস্যার সমাধান করেছে।
Luís de Sousa

2
এটি আমার সমস্যাটি সমাধান করেছে (ওপি, উবুন্টু 14.04 / ডকার 18.01.0-ce এর মতো)। যদি আপনার ডকারের ইমেজে পিং কমান্ড না থাকে তবে এই লিঙ্কটি পিং ছাড়াই কার্যকর পরীক্ষা ইন্টারনেট সংযোগ হতে পারে । যদি আপনার হোস্টটি না থাকে systemctl(উবুন্টু 14.04) কীভাবে নেটওয়ার্কিং পরিষেবাটি পুনরায় চালু করবেন? এবং / অথবা আপনার কম্পিউটার পুনরায় চালু করুন।
বেনিয়ামিন

মোহন মত কাজ!
হোমউইকার 14

1
এটি উবুন্টু 18.04 (বিকল্প বি) এ কাজ করে। তবে ডকার এখন সঠিকভাবে /etc/resolv.confনির্মাণের পাত্রে স্থানান্তরিত করেনি , আমাকে ম্যানুয়ালি পাত্রে ফাইলটি অনুলিপি করতে হয়েছিল।
গ্লাক্স

1
আমার মেশিনে (রেডহ্যাট 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

মনে হচ্ছে ইন্টারফেসটি কোনওভাবে 'ফাঁসি' পেয়েছিল।

ডকারের আরও সাম্প্রতিক সংস্করণগুলির জন্য আপডেট করুন:

উপরের উত্তরটি এখনও আপনার জন্য কাজটি পেতে পারে তবে এই উত্তরটি পোস্ট হওয়ার পরে এবং ডকারকে আরও বেশি পোলিশ করা হয়েছে এখন বেশ দীর্ঘকাল হয়েছে তাই নিশ্চিত হয়ে নিন যে আপনি iptablesসবার সাথে ম্যাংলিংয়ের আগে এগুলি প্রথম চেষ্টা করেছিলেন ।

sudo service docker restart বা (আপনি যদি কোনও লিনাক্স ডিস্ট্রোতে থাকেন যা আপস্টার্ট ব্যবহার করে না) sudo systemctl restart docker


31
docker -dব্যর্থ। কোন -dপতাকা নেই।
Luís de Sousa

1
যাদের এখনও সমস্যা রয়েছে তাদের জন্য মবির গিথুব
নেপক্সক্স

1
@ পাওয়ান:ip link del docker0
ড্রভরকশার্ড

1
বা ব্রিজ-
ইউটিসগুলি

5
docker -dনতুন সংস্করণে বিদ্যমান নেই। পরিবর্তে service docker stopdockerdservice docker start
টেল্মো মার্কস

64

ডকার পুনরায় আরম্ভ করার উদ্দেশ্যটি হ'ল এটি ম্যানুয়ালি করা নয় serviceবা আর আরআর কমান্ডটি ব্যবহার করুন :

service docker restart

5
আপনি যদি কোনও লিনাক্স ডিস্ট্রোতে থাকেন যা আপস্টার্ট ব্যবহার করে না, sudo systemctl পুনঃসূচনা ডকার আমার পক্ষে কাজ করেছে
জেফ্রি

পুনরায় আরম্ভ ভাল কাজ করে। আমি জানি না যে এটির সাথে আমি এটি "অটো স্টার্ট" ( systemctl enable docker) সক্ষম করেছিলাম
লুকাশ পটারসকি

ওপি-র প্রশ্নের সাথে প্রাসঙ্গিক বলে মনে হচ্ছে না।
কেভিন বুশস

এটি কিনা, কারণ পরিস্থিতিতে ওপি বর্ণনা করছে, ডকার পুনরায় সেট করা নেটওয়ার্ক ইন্টারফেসগুলিকে পুনরায় সেট করে তোলে, তাই ইন্টারনেট অ্যাক্সেস পুনরায় চালু করে ab এটি সত্য যে এটি কখনও কখনও কেন ভেঙে যায় তা সমাধান করে না, তবে এটি সমস্যার সমাধান সরবরাহ করে।
বিটমাস্ক

তবে উত্পাদন পরিবেশে, ডক পুনরায় চালু করা অসম্ভব। এই ক্ষেত্রে সমস্যাটি কীভাবে সমাধান করবেন?
সুয়ানহানেক্স

22

ওএসএক্স (ডকার মেশিন ব্যবহার করে) এর উত্তর দিয়ে এই প্রশ্নটি আপডেট করা হচ্ছে

আপনি যদি ওএসএক্সে ডকার মেশিন ব্যবহার করে ডকার চালাচ্ছেন তবে নিম্নলিখিতগুলি আমার পক্ষে কাজ করেছে:

docker-machine restart

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

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

তারপরে (কমপক্ষে আমার অভিজ্ঞতায়), আপনি যদি কোনও ধারক থেকে গুগল ডটকমকে পিন করেন তবে সবকিছু ঠিকঠাক হবে।


আবার নেটওয়ার্ক অ্যাক্সেস কাজ করতে উইন্ডোতেও কাজ করেছে।
মিকেল লেপিস্টö

1
এটা আমার জন্য কাজ করেছে। আমার উপরের মেনু বারে একটি ডকার-আইকন রয়েছে, মেনুতে আমার একটি "পুনঃসূচনা" বিকল্প ছিল। এর পরে, নেটওয়ার্কিং আবার ঠিক ছিল
অলিডেম

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
ল্যামিসন

6

আমি ব্যবহার করেছিলাম DOCKER_OPTS="--dns 8.8.8.8"এবং পরে আবিষ্কার করেছি এবং আমার ধারকটির সরাসরি ইন্টারনেটের অ্যাক্সেস নেই তবে আমার কর্পোরেট ইন্ট্রনেট অ্যাক্সেস করতে পারে। আমি DOCKER_OPTSনিম্নলিখিতটিতে পরিবর্তন করেছি :

DOCKER_OPTS="--dns <internal_corporate_dns_address"

internal_corporate_dns_addressআমাদের ডিএনএসের আইপি ঠিকানা বা এফকিউডিএন এর সাথে প্রতিস্থাপন এবং ব্যবহার করে পুনরায় চালু করা

sudo service docker restart

এবং তারপরে আমার ধারক তৈরি করে এবং এটিতে ইন্টারনেটে অ্যাক্সেস রয়েছে কিনা তা পরীক্ষা করে।


5

আমার কোনও কন্টেইনারগুলির জন্য আমার জন্য এলোমেলোভাবে ঘটলে আমি স্ট্যাম্পড হয়ে গিয়েছিলাম, অন্য পাত্রে ভাল ছিল। ধারকটি কমপক্ষে একটি অভ্যন্তরীণ অভ্যন্তরীণ নেটওয়ার্কের সাথে সংযুক্ত ছিল , সুতরাং Composeসংজ্ঞাটিতে কোনও ভুল ছিল না । ভিএম / ডকার ডেমন পুনরায় চালু করার ফলে কোনও লাভ হয়নি। এটি কোনও ডিএনএস সমস্যাও ছিল না কারণ ধারকটি pingকোনও বহিরাগত আইপিও করতে পারেনি । আমার পক্ষে কী সমাধান হয়েছিল তা হ'ল ডকার নেটওয়ার্ক (গুলি) পুনরায় তৈরি করা। আমার ক্ষেত্রে, 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

আমার জন্য এটি হোস্টের ফায়ারওয়াল ছিল। হোস্টের ফায়ারওয়ালে আমাকে ডিএনএসের অনুমতি দিতে হয়েছিল। এবং হোস্ট ফায়ারওয়াল সেটিংস পরিবর্তন করার পরে ডকার পুনরায় চালু করতে হয়েছিল।


অথবা আপনি iptables অক্ষম করতে পারেন sudo service iptables stopএবং এর মাধ্যমে sudo chkconfig iptables off(সেন্টোস / আরএইচইএল)।
মাইকেল জেড

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 সেট করতে ভুলবেন না, বা সমস্ত অনুরোধগুলি (লোকালহোস্টগুলি সহ) প্রক্সিটি দিয়ে যাবে through

আরও তথ্য: আর্চলিনাক্স উইকিতে প্রক্সি সেটিংস


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 এ সমস্যা ছিল। তবে সমস্যাটি ডিএনএস নিয়ে ছিল। আমি এমন কর্পোরেট নেটওয়ার্কে ছিলাম যার নিজস্ব ডিএনএস সার্ভার রয়েছে এবং অন্যান্য ডিএনএস সার্ভারগুলি ব্লক করে। এটি কয়েকটি ওয়েবসাইট (পর্ন, টরেন্টস, ... ইত্যাদি) ব্লক করা

আপনার সমস্যা সমাধানের জন্য

  1. হোস্ট মেশিনে আপনার ডিএনএস সন্ধান করুন
  2. @jobin দ্বারা প্রস্তাবিত হিসাবে --dns your_dns ব্যবহার করুন

    ডকার চালান --dns your_dns -it - নাম গায়েস - হোস্টনেম গরু ডেবিয়ান বাশ ash


2

উইন্ডোজে (৮.১) আমি ভার্চুয়ালবক্স ইন্টারফেসটি (টাস্কএমগ্রির মাধ্যমে) মেরে ফেলেছি এবং এটি সমস্যার সমাধান করেছে।


2

আপনি আপনার ডকারটি ডিএনএস বিকল্পগুলি দিয়ে শুরু করেছেন --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

উবুন্টু 19.04 এর জন্য ভিপিএন এর জন্য ওপেনকনেক্ট 8.3 ব্যবহার করে, আমাকে সিস্টেমডের (সিলেক্ট করে /etc/resolve.conf) সিমেলিংক করতে হয়েছিল (উত্তরবুদ্ধির বিপরীতে)

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 ডিএইচসিপি আপডেট করে এবং / রান / সিস্টেমড / রেজোলিউশন / রেজোলিউশন / কনফিট স্থির / স্থির থাকে remained এই সমাধান সাহায্য করেছে। এখন, স্থানীয় মেশিনের পাত্রে ভিপিএন-এ সার্ভারের সাথে সংযোগ স্থাপন করা হয় (যা আমার পক্ষে কানের দুল হচ্ছিল না)
ডেক্সটার ২৩০৫

1

আপনি যদি ওএসএক্সে থাকেন তবে ডকার ইনস্টল করার পরে আপনার মেশিনটি পুনরায় চালু করতে হবে। এটি সময়েও একটি সমস্যা হয়ে দাঁড়িয়েছে।


1

মূলত আমার ডকার কনটেইনারটি বাহ্যিক ইন্টারনেটে পৌঁছতে সক্ষম হয়েছিল (এটি একটি ডোকর পরিষেবা / একটি আমাজন ইসি 2 তে চলমান ধারক)।

যেহেতু আমার অ্যাপ্লিকেশনটি একটি এআইপিআই, তাই আমি আমার আইপি টেবিলগুলি আপডেট করে আমার ট্র্যাফিক ৮০ থেকে পোর্টে যে সমস্ত ট্র্যাফিক আমার এপিআই (ডকারে চলমান) ছিল তাতে পোর্টে যাওয়ার জন্য আমার কনটেইনারটি তৈরি করে (এটি প্রয়োজনীয় সমস্ত প্যাকেজগুলি টানতে সফল হয়েছিল) followed শুনছি।

তারপরে, পরে যখন আমি ধারকটি পুনর্নির্মাণের চেষ্টা করি তখন এটি ব্যর্থ হয়। অনেক লড়াইয়ের পরে আমি আবিষ্কার করেছি যে আমার পূর্ববর্তী পদক্ষেপটি (আইপিটিবেল পোর্ট ফরওয়ার্ডিং নিয়ম নির্ধারণ করে) ডকারের বাহ্যিক নেটওয়ার্কিংয়ের সামর্থ্যকে বিশৃঙ্খলা করেছে।

সমাধান: আপনার আইপিটিবেল পরিষেবাটি বন্ধ করুন:

sudo service iptables stop

ডকার ডেমন পুনরায় চালু করুন:

sudo service docker restart

তারপরে, আপনার ধারকটি পুনর্নির্মাণের চেষ্টা করুন। আশাকরি এটা সাহায্য করবে.


অনুসরণ করুন

আমি সম্পূর্ণরূপে উপেক্ষা করেছিলাম যে আইপি টেবিলগুলির সাথে আগত ট্র্যাফিক 80 পোর্টে ডকারে চালিত এপিআই চলছে এমন বন্দরে ফরোয়ার্ড করার জন্য আমার কোনও ঝামেলা করার দরকার নেই। পরিবর্তে, আমি পোর্টটি মাত্র 80 বন্দরটি বন্দরের কাছে ডকারে থাকা এপিআই চালু ছিল:

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 পরিষেবাদি সক্ষম করুন
জয়

1

সেন্টোস 8 এ, আমার সমস্যাটি হ'ল আমি ডকার পরিষেবা শুরু করার আগে iptables ইনস্টল করি নি। আপনার ডকার পরিষেবা শুরু করার আগেই নিশ্চিত হয়ে নিন যে iptables পরিষেবা চালু আছে এবং চলছে।


0

উবুন্টুতে ডকার-কমপোজ ব্যবহার করে একটি প্রকল্প স্থাপনের চেষ্টা করার সময় আমিও এই জাতীয় সমস্যার মুখোমুখি হয়েছি।

ডকারের ইন্টারনেটের কোনও অ্যাক্সেস ছিল না, যখন আমি কোনও আইপি ঠিকানা পিন করার চেষ্টা করতাম বা কোনও ইউআরএল এনএসউলআপ করি - এটি সর্বদা ব্যর্থ হয়।

উপরে বর্ণিত ডিএনএস রেজোলিউশন সহ সমস্ত সম্ভাব্য সমাধানের চেষ্টা করেছি ail

আমি পুরো দিনটি হ্যাকটি কী চলছে তা অনুসন্ধান করার জন্য ব্যয় করে শেষ পর্যন্ত জানতে পেরেছিলাম যে সমস্ত সমস্যার কারণ অ্যান্টিভাইরাস ছিল, বিশেষত এটি ফায়ারওয়াল যা কোনও কারণে ডকারকে আইপি ঠিকানা এবং পোর্ট পেতে বাধা দিয়েছে।

যখন আমি এটি অক্ষম করেছি - সবকিছু ঠিকঠাক কাজ করেছে।

সুতরাং, যদি আপনার কোনও অ্যান্টিভাইরাস ইনস্টল থাকে এবং কোনও কিছুই সমস্যা সমাধানে সহায়তা করে না - সমস্যাটি অ্যান্টিভাইরাস ফায়ারওয়াল হতে পারে।


0

গত কয়েকদিন ধরে আমারও একই সমস্যা ছিল। আমার জন্য কারণটি সিস্টেমড, ডকার এবং আমার হোস্টিং সরবরাহকারীর সংমিশ্রণ ছিল। আমি আপ টু ডেট সেন্টস (7.7.1908) চালাচ্ছি।

আমার হোস্টিং সরবরাহকারী স্বয়ংক্রিয়ভাবে systemd- নেটওয়ার্কডের জন্য একটি কনফিগার ফাইল তৈরি করে। সিস্টেমেড 219 দিয়ে শুরু করা যা সেন্টোস 7-এর বর্তমান সংস্করণ, সিস্টেমড-নেটওয়ার্কড নেটওয়ার্ক-সম্পর্কিত সিস্টেপল পরামিতিগুলির নিয়ন্ত্রণ নিয়েছে। ডকার এই সংস্করণটির সাথে বেমানান বলে মনে হচ্ছে এবং প্রতিবার কোনও ধারক চালু হওয়ার পরে আইপি-ফরওয়ার্ডিং পতাকাগুলি পুনরায় সেট করে দেবে।

আমার সমাধান যোগ করার জন্য ছিল IPForward=true[Network]আমার প্রদানকারী তৈরি হওয়া কনফিগ ফাইলের -অধ্যায়। এই ফাইলটি বিভিন্ন জায়গায় হতে পারে, এ সম্ভবত /etc/systemd/network

প্রক্রিয়াটি অফিসিয়াল ডকার ডক্সেও বর্ণিত হয়েছে: https://docs.docker.com/v17.09/engine/installation/linux/linux-postinstall/#ip-forwarding-problems


আপনি দয়া করে এই পরামিতিটি নির্ধারণ করেছেন এমন সঠিক অবস্থানটি নির্দিষ্ট করতে পারেন? আপনার ঠিক একই অবস্থানটি আমি পেয়েছি, গুগল ক্লাউড প্ল্যাটফর্মে একটি ভিএম চালাচ্ছি এবং সার্ভারে কোনও *। নেট ওয়ার্ক ফাইল খুঁজে পাইনি। কেবলমাত্র /usr/lib/sysctl.d/50-default.confতবে বাক্য গঠন পৃথক।
el.severo

আমার ক্লাস্টার স্ব-পরিচালিত এবং আমার সরবরাহকারী কেবল সেটআপে বেসিক বুটস্ট্র্যাপিং করে। নেটওয়ার্ক কনফিগারেশন /etc/systemd/network/10-mainif.networkআমার জন্য ছিল । আপনি যে জায়গাগুলি চেক করতে পারেন সেগুলি হ'ল /usr/local/lib/systemd/এবং /usr/lib/systemd/সিস্টেমযুক্ত ম্যানপেজ অনুযায়ী।
ব্ল্যাকচেথা

0

আমার জন্য, 7.4 সেন্টোস ব্যবহার করে, এটি /etc/resolve.conf, iptables, iptables nat নিয়ম বা নিজেই ডকার ইস্যু করে না। সমস্যাটি হ'ল হোস্টটি প্যাকেজ ব্রিজ-ব্যবহারগুলি হারিয়েছে যা ডকারকে কমান্ড ব্র্যাকটিএল ব্যবহার করে সেতুটি তৈরি করতে হবে। yum -y ব্রিজ-ইউস ইনস্টল করুন এবং ডকার পুনরায় চালু করুন, সমস্যার সমাধান করুন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.