لقد غادرت للتو لتثبيت Docker على ubuntu 12.04 من هذا الدليل:
http://docs.docker.io/en/latest/installation/ubuntulinux/
وحصلت على هذا
➜ ~ sudo docker run -i -t ubuntu / bin / bash
2014/03/26 11:45:17 خطأ: فتح /etc/resolv.conf: لا يوجد مثل هذا الملف أو الدليل
أي اقتراحات؟
مشكلة مع الجهاز المضيف الخاص بك. أنشئ /etc/resolv.conf
واملأها بمعلومات DNS المناسبة وحاول الأمر مرة أخرى.
هذا ليس خطأ Docker ، إنها مشكلة ناتجة عن غياب /etc/resolv.conf على مضيفك. يمكنني إعادة إنتاج المشكلة عندما لا يكون هناك resolv.conf على المضيف.
الرجاء إصلاح نظام Linux الخاص بك.
IMHO الملف ليس ضروريًا ، أليس كذلك؟ لذلك ، لا ينبغي أن يكون الأمر يتعلق بنظام تشغيل معطل.
http://man7.org/linux/man-pages/man5/resolv.conf.5.html
في حالة عدم وجود هذا الملف ، سيتم الاستعلام عن خادم الاسم على الجهاز المحلي فقط ؛
في هذه الحالة ، يجب تشغيل خادم DNS على جهازك المحلي.
أواجه هذه المشكلة ويبدو أنها أثر جانبي لتكوين NetworkManager على توزيعة Sabayon Linux.
في حالتي ، يعد /etc/resolv.conf ارتباطًا رمزيًا لـ /etc/resolvconf/run/resolve.conf ولا يتم إنشاؤه إلا بعد اتصال NetworkManager بشبكة. هذا يجعل Docker يفشل في بدء التشغيل ولكنه يبدأ بشكل جيد بعد تسجيل الدخول والاتصال بشبكة.
OOPMan في البرنامج النصي الخاص بك ، ألا يجب أن تعتمد على NetworkManager قيد التشغيل قبل بدء خدمة عامل الإرساء؟
أتساءل أيضًا عما إذا كان يجب أن تكون هذه مشكلة منبع Go (على وجه التحديد "netgo") - هل نتحقق بالفعل من وجود resolv.conf بشكل مباشر ، أو بشكل غير مباشر فقط عبر تطبيق netgo؟
لقد أدركت أن مشكلتي لا علاقة لها بـ NM أو Sabayon Linux :-)
أنا أعمل على Asus X550CC. بشكل عام ، جهاز لائق ولكنه يحتوي على تحذير واحد: يتم تعطيل أجهزة Wi-Fi في نظام Linux حتى تنام ثم تستأنف. هذا يعني أنه عند التشغيل ، غير متصل بشبكة LAN سلكية ، يقرر النظام بشكل أساسي عدم وجود شبكة عاملة ومن ثم لا يحتوي /etc/resolv.conf على أي شيء. لا يحب Docker هذا وبالتالي فشل في البدء.
بمجرد استئناف التعليق ، يصبح كل شيء على ما يرام ويبدأ Docker.
unclejackcrosbymichael أنا لا تزال تواجه هذه المشكلة اليوم على عامل ميناء النسخة 1.12.6.
لماذا تقوم البوابة /etc/resolv.conf بتشغيل حاويات الرصيف؟
أعتقد أنه لم تكن هناك إجابة جيدة على هذا ، وبما أنني أواجه هذا أيضًا ، فأنا أعيد فتحه. thaJeztah هل يمكنك ping
ينص دليل resolv.conf (من glibc) على ما يلي:
If this file does not exist, only the name server on the local
machine will be queried; the domain name is determined from the
hostname and the domain search path is constructed from the domain
name.
لذلك يجب افتراض أن نظام Linux بدون resolv.conf هو نظام Linux صالح.
تتعامل البرامج الأخرى مثل منطق تحميل DNS resolv.conf الخاص بـ golang مع resolv.conf المفقود أو الذي يتعذر الوصول إليه بنفس الطريقة: https://golang.org/src/net/dnsconfig_unix.go
أيضًا ، لا يعد resolv.conf ضروريًا للأنظمة التي تستخدم وحدات غير libc NSS مثل nss-Resolution أو winbind ، ldap ، إلخ.
/ cc sanimej
يمنع هذا الخطأ أيضًا من استخدام عامل التشغيل دون اتصال بالإنترنت في بعض التوزيعات.
محاولة إصلاحه في: https://github.com/docker/libnetwork/pull/1847
فقط قم بإنشاء ملف فارغ بأسماء 'resolv.conf' في المكان ، تم حل مشكلتي ~
أرى أن الإصلاح الخاص بهذا قد تم دمجه من خلال https://github.com/moby/moby/commit/1ddeb11835600127a3319fc0dd3764e57ffbf521 ، والذي سيتم تضمينه في إصدار 17.10 القادم ؛ https://github.com/docker/docker-ce/blob/17.10/components/engine/vendor/github.com/docker/libnetwork/sandbox_dns_unix.go
إغلاق ، لأن هذا يتم حله على الماجستير 👍
التعليق الأكثر فائدة
أواجه هذه المشكلة ويبدو أنها أثر جانبي لتكوين NetworkManager على توزيعة Sabayon Linux.
في حالتي ، يعد /etc/resolv.conf ارتباطًا رمزيًا لـ /etc/resolvconf/run/resolve.conf ولا يتم إنشاؤه إلا بعد اتصال NetworkManager بشبكة. هذا يجعل Docker يفشل في بدء التشغيل ولكنه يبدأ بشكل جيد بعد تسجيل الدخول والاتصال بشبكة.