ডকারের পাত্রে কোনও ইন্টারনেট সংযোগ নেই


21

আমি কোনও ডকারের ধারক মধ্যে ইন্টারনেট সংযোগের জন্য প্রয়োজনীয় কোনও আদেশ কার্যকর করতে পারি না।

কাজ করে:

docker run ubuntu /bin/echo 'Hello world'

কাজ করে না:

docker run ubuntu apt-get update

Err:1 http://archive.ubuntu.com/ubuntu xenial InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Err:3 http://archive.ubuntu.com/ubuntu xenial-security InRelease
  Temporary failure resolving 'archive.ubuntu.com'
Reading package lists...
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-updates/InRelease  Temporary failure resolving 'archive.ubuntu.com'
W: Failed to fetch http://archive.ubuntu.com/ubuntu/dists/xenial-security/InRelease  Temporary failure resolving 'archive.ubuntu.com'

একই সাথে pipএবং ping

আমি উবুন্টু 16.04 এ আছি এবং ফায়ারওয়াল বা কর্পোরেট প্রক্সি সার্ভার ব্যবহার করছি না এবং ডকার পুনরায় চালু করার চেষ্টা করেছি।

Upd:

ইন্টারেক্টিভ মোডে আপডেট একই ফ্যাশনে ব্যর্থ।

docker exec -ti angry_goodall /bin/bash
apt-get update
#fails
ping google.com
#fails with "unknown host" message
ping 8.8.8.8 
# shows PING 8.8.8.8 (8.8.8.8): 56 data bytes
# and than hangs indefinetly

sudo apt-get update হোস্টে, অর্থাৎ ডকারের বাইরে আমার কম্পিউটারে সফলতার সাথে চলে runs

আপডেট ডকার সংস্করণ 1.12.1, বিল্ড 23cf638


আপনি হোস্ট থেকে একটি ডোমেন পিং করতে পারেন? আপনি কি apt-get updateডকারের সাথে ইন্টারেক্টিভ মোডে চলতে পারেন ?
adampski

আউটপুট ত্রুটিটি দেখায়: 'আর্কাইভ.বুন্টু ডটকম' সমাধান করে অস্থায়ী ব্যর্থতা ... চেষ্টা করুন ..পিং www.google.com .. দেখুন আপনি যদি একই প্রতিক্রিয়া পান তবে দেখুন ... পিং 8.8.8.8 .. আইপি যদি কাজ করে এবং হোস্টের নামটি না করে তবে আপনার ডিএনএস নষ্ট হয়ে গেছে (আরও /etc/resolv.conf ডিএনএস সার্ভারটি কী ব্যবহৃত হচ্ছে তা দেখতে)
TG2

@ অ্যাডাম্পস্কি, আমি আপনার পরামর্শের ভিত্তিতে প্রশ্ন আপডেট করেছি।
সাশকো লিখেনকো

@ টিজি 2, আমি আপনার পরামর্শের ভিত্তিতেও প্রশ্ন আপডেট করেছি।
সাশকো লিখেনকো

আপনি ডকার ইঞ্জিনের কোন সংস্করণটি চালাচ্ছেন?
অ্যাডাম্পস্কি

উত্তর:


10

যেমন ডিকারের জন্য গিটহাব ইস্যু # 866 ইস্যুতে ক্র্যাক দ্বারা প্রস্তাবিত :

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

"এটি ডকারকে সেতুটি পুনরায় তৈরি করতে এবং নেটওয়ার্কের সমস্ত নিয়ম পুনরায় চালু করতে বাধ্য করবে"


1
আমি এটি চেষ্টা করেছিলাম এবং এটি আমার সম্পূর্ণ কম্পিউটারে নেটওয়ার্কটিকে হত্যা করে।
পিটারসোহন

এটি আমার পক্ষে সহায়ক এবং সমস্যাটি সমাধান হয়েছে। ধন্যবাদ.
রাও

8
-dপতাকা প্রস্থান করে না।
Luís de Sousa

2
হাই @ LuísdeSousa এটি আপনি লজ্জাজনক বলে মন্তব্য করেছেন তবে সম্ভবত কিছু স্যুইচ সরিয়ে নেওয়া হয়েছে বা নতুন রিলিজে পরিবর্তিত হয়েছে এমন সম্ভাবনা বিবেচনা করুন। বিশেষত যেহেতু এটি এক বছর আগে শেষ হয়েছিল।
অ্যাডাম্পস্কি

3
কেবলমাত্র আদেশটি অনুলিপি / অনুলিপি করার পরিবর্তে আপনি এর অর্থ কী তা ব্যাখ্যা করতে পারেন :)
অ্যাডেলিন

12

স্ট্যাকওভারফ্লোতে একই ধরণের সমস্যা রয়েছে যেখানে উবুন্টু 16.04-তে একটি ভিন্ন সমাধান ডকার 17.09 এর মাধ্যমে এই সমস্যাটি সমাধান করে:

এর সামগ্রীগুলি পরীক্ষা করুন resolv.conf:

$ cat /etc/resolv.conf

যদি এটির মতো একটি লাইন অন্তর্ভুক্ত থাকে nameserver 127.0.1.1তবে এর অর্থ পাতাগুলি একটি ভুল নাম সার্ভার পাচ্ছে। এই NetworkManager.confফাইলটি সম্পাদনা ঠিক করতে :

$ sudo pico /etc/NetworkManager/NetworkManager.conf

এবং সাথে লাইন মন্তব্য dns=dnsmasq; ফাইলটি দেখতে এমন হওয়া উচিত:

[main]
plugins=ifupdown,keyfile,ofono
#dns=dnsmasq

[ifupdown]
managed=false

অবশেষে, নেটওয়ার্ক ম্যানেজারটি পুনরায় চালু করুন:

$ sudo systemctl restart network-manager

আবার ধারকটি পরীক্ষা করুন:

$ docker run ubuntu:16.04 apt-get update
Get:1 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]

আমার ইনস্টলটি বর্ণনার সাথে মিলছে এবং উপরের পদ্ধতির বিষয়টি আমার জন্য সমস্যার সমাধান করেছে।
krcools

উবুন্টু 18.04 আপডেট উত্তর: superuser.com/a/1335054
wisbucky

7

চেক করার জন্য প্রথম জিনিসটি ডকারের পাত্রে চালানো 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পাত্রে অনুলিপি করার জন্য এখন আপনার কাছে হোকারের বৈধ হওয়া উচিত ।

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