إصلاح: لا يمكن الاتصال بـ Docker Daemon



جرب أداة القضاء على المشاكل

قد تكون مرتبكًا جدًا إذا كانت محطة Linux ترمي الخطأ 'لا يمكن الاتصال بـ Docker daemon' ، لأنه على الأرجح يعمل Docker daemon بالفعل عندما ترى ذلك. بينما تريد التأكد من ذلك ، فمن المحتمل أن تشعر بالحيرة عندما تكتشف أن هذا الخطأ ليس له علاقة بالخدمة التي لم تبدأ. غالبًا ما يتم إلقاؤها على المستخدمين الذين لم يضيفوا أنفسهم إلى مجموعة Docker.



يُصدر Docker مجموعة مستخدمين منفصلة على أنظمة Linux ، ولن يتمكن أولئك الذين لديهم حسابات مستخدمين لم تتم إضافتها إليه من الاتصال بها. ضع في اعتبارك أن إضافة حساب مستخدم إلى مجموعة Docker يعد مكافئًا وظيفيًا للجذر نظرًا لأن البرنامج الخفي يعمل دائمًا كمستخدم أساسي. قد يكون هذا متوقعًا على نظام Ubuntu Server لمستخدم واحد ، لكنه بالتأكيد سيكون شيئًا يجب مراعاته لمن يقومون بتشغيل Docker على Arch أو Fedora أو Debian.



الطريقة الأولى: التحقق من حالة خدمة Docker

على الرغم من أنه من المؤكد تقريبًا ، ستحتاج إلى التحقق مما إذا كانت خدمة Docker قيد التشغيل حاليًا. في نافذة المحطة ، قم بتشغيل systemctl status docker.service كمستخدم عادي. يجب أن تحصل على بعض المعلومات حول رقم PID الذي تم تخصيصه من قبل Docker. إذا لم تقم بذلك ، فسيلزمك إعادة تشغيل الخدمة.



إذا كنت قد أعدت تشغيله ، فحاول القيام بكل ما يتسبب في إصابتك بالخطأ 'لا يمكن الاتصال بـ Docker daemon'. إذا نجحت الآن ، فأنت لم تكن لديك الخدمة قيد التشغيل ولا داعي للقلق بشأن أي شيء آخر بخلاف سبب عدم تشغيلها. لسوء الحظ ، لا يعمل هذا في معظم الحالات ، لذا ستحتاج إلى المضي قدمًا في هذه المواقف.

الطريقة 2: إضافة مستخدمين إلى مجموعة Docker

يركض معلومات عامل الميناء من سطر الأوامر ، والذي سيعطيك عادةً الخطأ 'لا يمكن الاتصال بـ Docker daemon' مرة أخرى.

إذا كانت هذه هي الحالة ، فستحتاج إلى الجري sudo groupadd عامل إرساء ؛ sudo usermod -aG docker $ USER لتضيف نفسك إلى المجموعة المناسبة. في حالة حدوث خطأ بسبب عدم وجود مستخدم ، يمكنك تعديل الأمر ليعمل كـ sudo groupadd عامل إرساء ؛ sudo gpasswd-a $ USER docker ، ولكن لا ينبغي أن تكون هذه مشكلة بشكل عام لأن معظم توزيعات Linux ذات الدرجة التجارية تعمل مع نفس مجموعة الأدوات. على أي حال ، قم بتشغيل newgrp عامل ميناء حتى تتمكن من تسجيل الدخول إلى مجموعة عمال الإرساء الجديدة إذا لم تكن قد قمت بذلك بالفعل.



ضع في اعتبارك أن هذا سيضيف دائمًا المستخدم الذي سجلت الدخول به حاليًا ، وهو ما لا ينبغي أن يمثل مشكلة كبيرة على أنظمة معظم الأشخاص الذين ليس لديهم حسابات متعددة بخلاف المستخدم الواحد والحساب الجذر. نظرًا لأن لديك حق الوصول الإداري الذي تم إدخاله في الوقت الحالي ، فقم بتشغيل sudo chgrp docker / usr / bin docker ؛ sudo chgrp docker /var/run/docker.sock لإصلاح الأذونات على مقبس وأمر عامل الإرساء. عادةً ما ينتمي ملف socket فقط إلى المستخدم الجذر ، لذا سيؤدي ذلك إلى تصحيح ذلك.

بعد تشغيله ، لن تواجه أي مشكلة لأنه ينتمي الآن إلى نفس المجموعة التي أنشأتها في الأمر السابق. ستحتاج إلى الاختبار للتأكد من أن عامل الإرساء يعمل بدون sudo ، لذا اكتب عامل ميناء تشغيل مرحبا العالم كمستخدم منتظم للتأكد من عدم حصولك على أية أخطاء أخرى.

في هذه المرحلة ، سيستمر عدد قليل جدًا من المستخدمين في تلقي أي نوع من رسائل الخطأ. يجب تصحيح معظم الأشياء في هذه المرحلة ، ولكن إذا كنت لا تزال تواجه مشكلات ، فقد ترغب في تسجيل الخروج تمامًا. حاول فتح نافذة أخرى لمحاكي المحطة الطرفية ، ولكن إذا لم ينجح ذلك ، فقد يساعد ذلك أحيانًا في إيقاف تشغيل النظام لإعادة التشغيل بالكامل إذا كان ذلك ممكنًا على الإطلاق

الطريقة الثالثة: استخدام قوائم التحكم في الوصول لتعديل بيانات تعريف Docker

إذا كنت لا تريد الانتماء إلى مجموعة تجعلك تحب المستخدم الأساسي ، فيمكنك تعيين ملف المقبس للعمل مع أذونات معينة فقط. يمكنك تجاهل عملية gpasswd إذا كنت تفضل القيام بذلك بهذه الطريقة. الاضطرار إلى فحص نظام الملفات بحثًا عن إدخالات قائمة التحكم بالوصول (ACL) المختلفة يمثل عبئًا على أولئك الذين يقومون بتدقيق الأمان ، ولكنه يمنعك من الاضطرار إلى استخدام مجموعة عامل الإرساء بالكامل.

إذا كنت تريد أن تفعل ذلك بهذه الطريقة ، فيمكنك الجري sudo setfacl -m المستخدم: الاسم: rw /var/run/docker.sock أثناء استبدال المستخدم والاسم بالتسميات المناسبة. يمنح هذا الإذن للوصول إلى مقبس Docker على /var/run/docker.sock ، والذي يجب أن يعمل مع Debian و Ubuntu Server.

3 دقائق للقراءة