[FIX] لا يمكن الاتصال بـ Docker Daemon في 'unix: ///var/run/docker.sock'

الأمر كما هو موضح أدناه.



ملحوظة: تعمل هذه الطريقة فقط مع المستخدمين الذين قاموا بتثبيت Docker مع مدير حزم APT. إذا قمت بتثبيت Docker عبر يفرقع، ينفجر ، تشير إلى الحل 5 أدناه.

  1. افتح Terminal وتنفيذ الأمر الأول - كشف عامل ميناء .
sudo systemctl كشف عامل ميناء

إذا حاولنا بدء خدمة عامل الإرساء عند إخفاء عامل الإرساء ، فقد نواجه الخطأ'فشل بدء docker.service: الوحدة مقنعة.'يمكن اعتبار القناع نسخة أكثر قوة من التعطيل. عندما يتم إخفاء ملف الوحدة ، يتم ربط الوحدة بـ'dev / null. 'يمكنك سرد حالة جميع ملفات الوحدة باستخدام الأمر -' قائمة ملفات الوحدة $ systemctl '



2. بمجرد أن تكون وحدة الرصيف مكشوف ، نستطيع بدء عامل الميناء شيطان باستخدام الأمر systemctl. ال عامل ميناء شيطان يدير كائنات عامل الإرساء مثل طلبات الصور والحاويات وطلبات Docker API. قم بتنفيذ الأمر أدناه في سطر الأوامر.



بدء عامل إرساء systemctl
ابدأ خدمة Docker

ابدأ خدمة Docker



3. ل تحقق سواء كانت خدمة عامل ميناء نشط وعامِل . سوف نستخدم ملف حالة systemctl الأمر الذي يوضح الحالة الحالية لخدمة معينة. نفّذ الأمر أدناه على جهازك الطرفي.

عامل ميناء systemctl
حالة خدمة عامل ميناء

حالة خدمة عامل ميناء

من الصورة أعلاه ، يمكننا أن نرى ذلك عامل الإرساء نشط وقيد التشغيل .



الحل 2: تنظيف 'فشل Docker Pull' وبدء خدمة Docker

هناك حالات قد تغلق فيها Docker بشكل غير متوقع أثناء سحب الحاوية. مثل هذه المواقف سوف تخفي خدمة عامل ميناء و قفص الاتهام الملفات. Docker.socket هو ملف موجود في '/var/run/docker.sock 'ويستخدم للتواصل مع Docker daemon. سنحتاج إلى كشف الملفات المكونة من وحدتين - docker .service و docker.daemon من قبل الإجراء إلى بدء عامل الإرساء.

  1. قم بتشغيل ملف طرفية وتنفيذ أوامر أدناه:
systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service
ابدأ خدمة Docker

ابدأ خدمة Docker

إذا كنت لا تزال تواجه الخطأ حتى بعد تنفيذ الأوامر أدناه ، فسنحتاج إلى ذلك حذف الملفات الموجودة في كونتيند الدليل قبل بدء Docker مرة أخرى. كانت Containerd عبارة عن ميزة تم تقديمها في Docker 1.11 وتستخدم لإدارة دورة حياة صور Docker.

2. افتح Terminal وقم بتنفيذ الأوامر أدناه. تأكد من أنك تعرف كلمة مرور الجذر لأننا سنحتاج إلى امتيازات مرتفعة لتنفيذ الأوامر.

sudo su service docker stop cd / var / run / docker / libcontainerd rm -rf containerd / * rm -f docker-containerd.pid service docker start
أعد تشغيل خدمة عامل الإرساء

أعد تشغيل خدمة عامل الإرساء

الحل 3: بدء خدمة Dockerd (Docker Daemon)

Dockerd هو Docker daemon الذي يستمع إلى Docker APIs ويدير كائنات Docker المختلفة. يمكن استخدام Dockerd كبديل للأمر ' بدء عامل إرساء $ systemctl والتي تُستخدم أيضًا لبدء برنامج Docker daemon.

  1. افتح طرفية و بدء dockerd بتنفيذ الأمر أدناه:
sudo dockerd
بدء dockerd

بدء dockerd

الحل 4: ابدأ تشغيل Docker باستخدام أمر الخدمة

إذا كنت تستخدم ملف نظام SysV init ، فلن يعمل الأمر systemctl من أجلك. سنحتاج إلى استخدام أمر الخدمة إلى بدء برنامج Docker daemon .

  1. قم بتشغيل Terminal و نفذ - اعدم الأوامر أدناه:
sudo service - الحالة-all sudo service docker start
ابدأ خدمة Docker

ابدأ خدمة Docker

الحل 5: ابدأ خدمة Docker مع Snap

إذا قمت بتثبيت Docker بملحق Snap مدير الحزم ، ستحتاج إلى استخدام الأمر snap لإدارة عفريت عامل الإرساء.

بشكل عام ، يدير Snap خدماتهم تلقائيًا. ومع ذلك ، في حالات مثل هذا الخطأ ، سيتطلب تدخلًا يدويًا. تتضمن بعض الوسيطات التي يمكنك استخدامها مع الأمر snap stop ، و start ، و reset. في حالتنا ، سنستخدم معلمة البدء.

  1. افتح Terminal وقم بتنفيذ الأمر أدناه إلى بدء Docker .
sudo snap start docker
بدء Docker

بدء Docker

2. قم بتنفيذ الأمر أدناه إلى تحقق سواءا كان بدأت خدمة Docker.

خدمات sudo المفاجئة

ذلك سوف قائمة كل تشغيل خدمات المفاجئة .

خدمات Snap

خدمات Snap

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

3. قم بتشغيل Terminal وقم بتشغيل الأوامر أدناه:

sudo snap connect docker: home: home sudo snap start docker
بدء Docker

بدء Docker

الحل 6: بدء Docker للمستخدمين بدون Root P. الامتيازات

قد ينشأ الخطأ أيضًا بسبب عدم وجود امتيازات مرتفعة وليس لدى المستخدم حق الوصول إلى 'unix: ///var/run/docker.sock'. لحسن الحظ ، هناك حل بديل. سنقوم بتصدير متغير Docker Host إلى المضيف المحلي عبر المنفذ 2375.

  1. افتح Terminal وقم بتشغيل الأمر أدناه:
تصدير DOCKER_HOST = tcp: // localhost: 2375
تصدير DockerHost

تصدير Docker Host

الحل 7: أعد تثبيت Docker

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

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