Compose: خطأ: تعذر الاتصال بـ Docker daemon على http + docker: // localunixsocket - هل يعمل؟

تم إنشاؤها على ٢٤ نوفمبر ٢٠١٦  ·  204تعليقات  ·  مصدر: docker/compose

أعلم أن هناك مشكلة أخرى من نفس النوع ولكن تم إغلاق المشكلة الأخرى وجربت جميع الحلول المقترحة ولكن دون أي تأثير.

لا يزال لا يعمل:

matteo<strong i="8">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker -v
Docker version 1.12.3, build 6b644ec
matteo<strong i="9">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="10">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo service docker start
start: Job is already running: docker
matteo<strong i="11">@ubuntuDockerMB</strong>:~/wordpress-docker$ echo $DOCKER_HOST

matteo<strong i="12">@ubuntuDockerMB</strong>:~/wordpress-docker$ DOCKER_HOST=127.0.0.1
matteo<strong i="13">@ubuntuDockerMB</strong>:~/wordpress-docker$ echo $DOCKER_HOST
127.0.0.1
matteo<strong i="14">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="15">@ubuntuDockerMB</strong>:~/wordpress-docker$ unset DOCKER_HOST
matteo<strong i="16">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
matteo<strong i="17">@ubuntuDockerMB</strong>:~/wordpress-docker$ groups matteo
matteo : matteo adm cdrom sudo dip plugdev sambashare lpadmin docker

  • أنا جزء من مجموعة عمال الشحن

  • أنا أستخدم sudo أيضًا

  • انتهت العملية

  • متغير DOCKER_HOST غير مضبوط أو 127.0.0.1

  • إعادة توصيل المستخدم

  • أعاد تشغيل الخادم

أعتقد أنني جربت كل التكوينات الممكنة ، فهل أنا على صواب؟


المواصفات:

  • نظام التشغيل: Ubuntu 14.04.04 في Virtualbox على Windows 10 Home.

  • إصدار Docker 1.12.3 ، النسخة 6b644ec


شكرا لك!

kinquestion

التعليق الأكثر فائدة

هل حاولت بدون sudo ؟ لا يجب أن تكون في حاجة إليه وقد يؤدي ذلك إلى إفساد الأشياء في حالتك. أيضًا ، ماذا ترى عند تشغيل docker info ؟

ال 204 كومينتر

هل حاولت بدون sudo ؟ لا يجب أن تكون في حاجة إليه وقد يؤدي ذلك إلى إفساد الأشياء في حالتك. أيضًا ، ماذا ترى عند تشغيل docker info ؟

حاول تشغيل dockerd أو sudo dockerd إذا لزم الأمر أولاً لبدء البرنامج الخفي. إذا بدأت dockerd بـ sudo فقد ترغب في تشغيل docker-compose up مع sudo أيضًا. وإلا فلا بأس.

@ شين - مرحبا! لقد قمت بذلك بالفعل مع sudo وأيضًا باستخدام الجذر ( sudo su ).

matteo<strong i="7">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.

هذه هي العملية كجذر

root<strong i="11">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker# docker-compose up
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
root<strong i="12">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker#

هذه نتيجة docker info

root<strong i="17">@ubuntuDockerMB</strong>:/home/matteo/wordpress-docker# docker info
An error occurred trying to connect: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.24/info: read unix @->/var/run/docker.sock: read: connection reset by peer

تضمين التغريدة

dockerd لا يعمل لكن sudo service docker start يعمل كما هو متوقع

matteo<strong i="25">@ubuntuDockerMB</strong>:~/wordpress-docker$ sudo dockerd
INFO[0000] libcontainerd: new containerd process, pid: 4039
WARN[0000] containerd: low RLIMIT_NOFILE changing to max  current=1024 max=4096
INFO[0001] [graphdriver] using prior storage driver "aufs"
FATA[0001] Error starting daemon: layer does not exist

ملاحظة:

@ shin- & harshajayaweeraXHJ آسف

تحتاج إلى تصدير المتغير ليكون متاحًا في العمليات الفرعية:

$ export DOCKER_HOST=127.0.0.1

على الرغم من أن هذا لا يحل مشكلتك تمامًا ...

واجهت هذا الخطأ لأنني تجاهلت بحماقة شروط أوبونتو.

شكرًا لك jamethy ، لقد فعلت ذلك تمامًا وأنا أفهم

matteo<strong i="7">@ubuntuDockerMB</strong>:~/wordpress-docker-tut$ docker-compose up -d
Traceback (most recent call last):
  File "<string>", line 3, in <module>
  File "compose/cli/main.py", line 65, in main
  File "compose/cli/main.py", line 114, in perform_command
  File "compose/cli/command.py", line 36, in project_from_options
  File "compose/cli/command.py", line 111, in get_project
  File "compose/cli/command.py", line 83, in get_client
  File "compose/cli/docker_client.py", line 74, in docker_client
  File "site-packages/docker/client.py", line 59, in __init__
  File "site-packages/docker/utils/utils.py", line 438, in parse_host
docker.errors.DockerException: Bind address needs a port: 127.0.0.1
docker-compose returned -1

تواجه نفس المشكلة الآن ، تحاول أيضًا تثبيت Wordpress تحت عامل الإرساء. حاولت كل شيء ، ولكن لا يزال يتعذر الاتصال. برنامج Docker daemon لا يعمل ... سأحاول مرة أخرى

بالنسبة لي ، تبقى المشكلة هناك:

Bind address needs a port: 127.0.0.1

ولكن يجب إنشاء هذا الرقم بواسطة عامل التحميل نفسه

لدي نفس مشكلة الملصق الأصلي ، وقد جربت كل الأشياء المقترحة أعلاه.

يبدو أنه في بعض الأحيان "يموت" عامل الميناء ولا يعمل ، وفي أوقات أخرى يظل يعمل. لقد لاحظت ذلك أثناء محاولة تشغيل الأمر docker info وتلقي خطأ حول عدم تشغيل عامل الإرساء. باستخدام service docker start ثم سمح لي بتشغيل الأمر info. هذا ما حصلت عليه:

Containers: 1
Running: 0
Paused: 0
Stopped: 1
Images: 1
Server Version: 1.12.5
Storage Driver: aufs
Root Dir: /var/lib/docker/aufs
Backing Filesystem: extfs
Dirs: 3
Dirperm1 Supported: true
Logging Driver: json-file
Cgroup Driver: cgroupfs
Plugins:
Volume: local
Network: host bridge overlay null
Swarm: inactive
Runtimes: runc
Default Runtime: runc
Security Options: apparmor seccomp
Kernel Version: 4.4.0-45-generic
Operating System: Ubuntu 16.04.1 LTS
OSType: linux
Architecture: x86_64
CPUs: 24
Total Memory: 31.42 GiB
Name: ayn
ID: 7TGC:G5WQ:6IYF:XWMH:XF3N:VXU7:SLZB:IHRN:T4FL:D35I:5JUA:H4S5
Docker Root Dir: /var/lib/docker
Debug Mode (client): false
Debug Mode (server): false
Registry: https://index.docker.io/v1/
WARNING: No swap limit support
Insecure Registries:
127.0.0.0/8

@ matteo-bombelli هذا الخطأ واضح جدًا ، تحتاج إلى تحديد منفذ. افعل export DOCKER_HOST=127.0.0.1:2375 بدلاً من ذلك.

@ ماتيو بومبيلي
كان لي نفس القضية.
تحتاج إلى إعادة تشغيل عامل ميناء.
$ service docker restart
لقد حللت ذلك مع هذا.

يمكن لأي شخص أن يوطد حل هذه المشكلة في خطوات؟

مرحبا. أنا أؤيد هذا التعليق الأخير ، لدي نفس المشكلة.

أواجه نفس المشكلة.

docker ps يعمل.

docker-compose build (مع الإصدار 2) يعمل!

يعطي docker-compose build (مع الإصدار 3) هذا الخطأ: /

lalitkumarj انها تريد ان تكون أفضل إذا قمت بإنشاء قضية جديدة مع كل المعلوماتfurkanmustafa @ shashijais789. هناك العديد من الأسباب التي يمكن أن تتسبب في فشل الاتصال بالمحرك ، من الشبكة إلى التكوين إلى المحرك الذي يحتمل أن يتعطل / يتوقف. يرجى أيضًا التأكد من تضمين سجلات المحرك مع علامة التصحيح -D .

نفس المشكلة. يعمل مع الإصدار 2 ، أحصل على هذا الخطأ مع verison 3 config.

الخطوات التالية حلت المشكلة بالنسبة لي.

إزالة عامل الميناء:
$ sudo apt-get remove docker docker-engine
إعادة التثبيت مع
curl -sSL https://get.docker.com/ | sh

إضافة مستخدم إلى مجموعة:
sudo usermod -aG docker user

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

يحتوي ملف docker-compose.yml الخاص بي على:

version: '2'

services:
  # Drupal server
  drupal:
    build:
      context: .
      dockerfile: "Dockerfile-drupal"
  mysql:
    ...

يؤدي استدعاء docker-compose build إلى:

Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

لذلك حاولت استخدام Docker لإنشاء كل ملف على حدة:

docker build -f="Dockerfile-drupal" .

أعطاني هذا خطأ أكثر فائدة:

Error checking context: 'no permission to read from some/data/directory'

أدى إصلاح هذا الخطأ والتأكد من أنه يمكنني إنشاء Dockerfile-drupal إلى عمل docker-compose build بشكل جيد.

ربما قد يتم تغيير الكود الذي ينتج الخطأ إلى شيء مثل:

Couldn't build the services.

 * Make sure you can build your Docker images using "docker build ...".
 * Make sure the Docker daemon is running.
 * If the Docker daemon is at a non-standard location, specify the URL with the DOCKER_HOST environment variable. Currently using http+docker://localunixsocket.

مطلوب كل:
1) apt-get remove وإعادة التثبيت باستخدام curl كما يقترح Kirill-Babkin (وأعد تشغيل socker ليكون آمنًا)
2) إضافة مستخدم إلى مجموعة عامل ميناء باستخدام usermod -aG وتسجيل الخروج وتسجيل الدخول
3) إلغاء تحديد DOCKER_HOST (كما اقترحه rkazak على https://forums.docker.com/t/docker-commands-require-sudo/12987/2) الذي قمت بتعيينه مسبقًا باستخدام> تصدير DOCKER_HOST = 127.0.0.1: 2375 كـ اقترحه جاميثي وشين
كان هذا على RPi 3B. بعد كل هذا ، يعمل عامل الميناء الآن. هل هناك أي فرصة يمكن تنظيفها حتى لا يضطر الآخرون إلى المرور بهذه التجربة المؤلمة ، حيث إنها تجارب مثل عامل الإرساء هذا مصمم للإصلاح؟ مجرد اقتراح.

في حالتي ، قام وكيل LAN (المحدد في خيارات الإنترنت - أنا على Windows) بمنع docker-compose من الاتصال بـ VM (بمحرك عامل الإرساء) على VirtualBox Host-Only Network - أدى تعطيل الوكيل إلى حل مشكلة.

على Ubuntu 16.04 ، نجح هذا بالنسبة لي:
sudo service docker start && docker-compose up -d

لست متأكدًا مما حدث ، لقد أعدت تشغيل جهاز الكمبيوتر الخاص بي وبدأ العمل !! : nerd_face:

@ ssi-anik هذا هو علم الحاسوب 😄

لقد مررت بنفس المشكلمة للتو. لقد وجدت أنه لسبب ما لم تتم إضافة المستخدم الخاص بي إلى مجموعة أمان عامل الإرساء ، وبالتالي لم يسمح لي بإذن على مقبس unix الخاص بالرصيف وإعطائي _ERROR: تعذر الاتصال بـ Docker daemon على http + docker: // localunixsocket - هل هو قيد التشغيل_ .

أدت إضافة مجموعة عامل الإرساء إلى المستخدم الحالي ، ثم تسجيل الخروج والعودة مرة أخرى إلى إصلاح كل شيء بالنسبة لي:
sudo usermod -aG docker $USER

كان هذا فشلًا في خطوة بناء معينة بالنسبة لي ، لقد حاولت تشغيل docker build . في نفس الدليل مثل Dockerfile ووجدت أن أحد الملفات التي كنت أحاول الوصول إليها COPY به مشكلات إذن.

تشغيل sudo chmod 755 -R . أصلح مشكلتي.

كما ذكر ChrisPappalardo في
https://github.com/docker/compose/issues/1214
تحقق من أذونات ملكية الملف داخل أدلة البناء الخاصة بك. نظرًا لأن عملية بناء الحاوية تتم في سياق المستخدم الحالي ، فإن وجود دليل لا يمكن الوصول إليه داخل الشجرة يمتلكه الجذر يمكن أن يؤدي إلى خطأ يؤدي إلى هذه الرسالة.

في حالتي ، نجح حل docker build -f myDockerfile . ساعدني في العثور على مشكلتي.

عندما قمت بعمل ls -l ، كان الدليل مملوكًا لمجموعة 999 و docker ، الجزء الغريب هو أنه لم يكن حتى للصورة التي كنت أحاول إنشاؤها ، كانت خدمة منفصلة.

واجهت هذا الخطأ لأنني قمت بتثبيت وحدة تخزين مثل ذلك ، أثناء التصحيح ، ونسيت التنظيف.
أحجام:
- ./itsLog :/var/log/itsLog

عندما حاولت إنشاء Dockerfile ، يجب أن يكون قد تلقى "إذنًا مرفوضًا" أثناء محاولة إضافة المسار المقيد.

وصف الخطأ هو بعض ما هو مضلل ، ولكن خلاف ذلك فمن المنطقي.

لقد غيرت ملف مالك الملف /var/run/docker.sock إلى المستخدم الحالي ، ولا بأس بذلك.
يبدو أن عامل الإرساء لم يكن لديه إذن بالوصول إلى /var/run/docker.sock.

وصف الخطأ بعض ما هو مضلل

نظرًا لأنه غير مفيد للغاية ، فلماذا لا تلتزم به وتكتفي بطباعة "لا"؟ /س

في حالتي ، اضطررت إلى مراجعة سجل النظام لمعرفة أن Docker daemon رفض مواصفات الإنشاء نظرًا لوجود أحرف كبيرة في سلسلة العلامات.

رسالة الخطأ هذه عبارة عن بيان شامل وربما يجب توثيقها (بدلاً من نشرها عبر مشكلات Stack Overflow و github للمشاريع غير ذات الصلة) أو توسيعها.

ساعدني تعليق
الحاوية السابقة التي قمت ب "حجمها" كانت قد أنشأت ملفات Python مجمعة ؛ *.pyc . تلك لم تكن متاحة للمستخدم الخاص بي.
تم نسخ المشكلة والإصلاح من أعلى:

يؤدي استدعاء docker-compose build إلى:
Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

استدعاء عامل الميناء مباشرة:
docker build .

الذي يكشف السبب الحقيقي:
Error checking context: 'no permission to read from '/home/user/dev/project/app/utils.pyc''.

أذونات الملف كانت:
-rw-r----- 1 root root 11K Nov 29 16:32 utils.pyc
وكان الإصلاح هو حذف تلك الملفات:
sudo rm app/*.pyc

مرحبا شباب،

بعد الترقية إلى إصدار docker 17.12 وبدأت خدمة عامل الإرساء ، فقد حل مشكلتي.

[] بدء # عامل إرساء الخدمة
13 إعادة التوجيه إلى / bin / systemctl start docker.service
# sudo docker-compose up -d

نحتاج إلى تحديث إصدار عامل التشغيل ثم سيعمل الإنشاء.

مع تحياتي،
براساد RVS

بدء عامل ميناء الخدمة
إعادة التوجيه إلى / bin / systemctl start docker.service
[ root @ kammu02-I9084 LDDS] # sudo
إنشاء شبكة "ldds_default" مع برنامج التشغيل الافتراضي
إنشاء وحدة تخزين "ldds_couch-data" باستخدام برنامج التشغيل الافتراضي
سحب الأريكة (isl-dsdc.ca.com:5000/analytics/lddscouchdb:2.1.8c.109) ...
2.1.8c.109: السحب من analytics / lddscouchdb
dd6405a9d644: اكتمل السحب
10f659fc3a7e: اكتمل السحب
8a0ce719aeb8: اكتمل السحب
fc23f8fbeac2: اكتمل السحب
5f02dd664e80: اكتمل السحب
f38b89a75914: اكتمل السحب
94add1a2ec1e: اكتمل السحب
e7db1a0942ee: اكتمل السحب
87b0136db4b9: اكتمل السحب
be9ceeef7cb5: اكتمل السحب
aed07b38ec55: اكتمل السحب
fc4632d89301: اكتمل السحب
6152a07afebb: اكتمل السحب
946862fd0151: اكتمل السحب
43408ca5f730: اكتمل السحب
الملخص: sha256: d3c13f08a4c9c3ed450325aef2dbe97abf0a55c13e9e2005109c05c713491fb3
الحالة: تم تنزيل أحدث صورة لـ isl-dsdc.ca. com: 5000 / analytics / lddscouchdb : 2.1.8c.109
جارٍ سحب ldds-web (isl-dsdc.ca.com:5000/analytics/lddscdb:2.1.8c.109) ...
2.1.8c.109: السحب من analytics / lddscdb
dd6405a9d644: موجود بالفعل
10f659fc3a7e: موجود بالفعل
8a0ce719aeb8: موجود بالفعل
eebc892936a1: اكتمل السحب
3c8dd6086ddb: اكتمل السحب
73c1dfebea61: اكتمل السحب
9fb23fd0d390: اكتمل السحب
f8943ba49c47: اكتمل السحب
a89ff5b6e340: اكتمل السحب
02615a9d0e05: اكتمل السحب
e129088bf324: اكتمل السحب
bf0ba8d71b09: اكتمل السحب
083300d85e61: اكتمل السحب
5deacfd6cb23: اكتمل السحب
220cda5539ae: اكتمل السحب
8cdee22c663b: اكتمل السحب
d76b24524469: اكتمل السحب
9c5ade36643f: اكتمل السحب
c7ca782f404c: اكتمل السحب
6a7bbcfb0b95: اكتمل السحب
الملخص: sha256: e2cb43e6b22ab344d7fc17f38e49caa3e295ef0efdfa43bc77ce671e0f172168
جارٍ إنشاء ldds_couchdb_1 ... تم
إنشاء ldds_couchdb_1 ...
إنشاء ldds_ldds-web_1 ... تم

لقد واجهت الخطأ أدناه ،
"تعذر الاتصال بـ Docker daemon على http + docker: // localunixsocket - هل يعمل؟"

تحقق مما إذا كانت مشكلة إذن ، قم بتنفيذ "sudo docker ps" بدون هذا الخطأ ويتم تنفيذ "docker ps" مع هذا الخطأ ، ثم مشكلة الإذن.

جرب خطوات تثبيت آخر عامل الإرساء. قد تحتاج إلى إضافة "المستخدم" إلى مجموعة عامل الإرساء.
https://docs.docker.com/engine/installation/linux/linux-postinstall/

هذا عمل معي.

مرحبًا بالجميع - هذا يحدث على جهازي أيضًا. الأمر الغريب هو أنني لم أجري أي تغييرات أو ترقيات على الإطلاق وبدأت للتو في الحدوث.

manjukori يحدث هذا لي على الرغم من أنني في مجموعة docker - ومع ذلك فأنا أقوم بتشغيل نفس الأمر ضمن sudo ! حتى من ناحية، يبدو أنك صحيح أنه نوع من مشكلة أذونات، حتى الآن، وأنا عضو من docker المجموعة! غريب جدا...

حسنًا ، وجد الجميع المشكلة! في حالتي ، أنا أستخدم docker-compose الذي يحمل دليلًا مملوكًا root في إحدى الحاويات. لسبب ما منع docker-compose (الذي يدير docker build ) من الإقلاع.

بمجرد إزالة هذا الدليل ، يعمل كل شيء كما كان من قبل (على الرغم من أنني لست متأكدًا من سبب نجاحه من قبل).

قد ترغب في التحقق من وجود شيء مشابه من جانبك أيضًا.

chmod 777 ذلك

يحتاج المستخدم الخاص بك إلى أن يكون في مجموعة "عامل الإرساء" لتشغيل عامل الإرساء بدون sudo. ما عليك سوى إضافة هذه المجموعة إلى حسابك وتسجيل الخروج ثم تسجيل الدخول مرة أخرى. تم إصلاح هذا بالنسبة لي على نظامي التشغيل Ubuntu و Mac OS.

jhnoor شكرا! عملت معي
sudo chmod 755 -R .

أود أن أكرر واحدة من أكثر التعليقات المفيدة حول القضية الأخرى والتي قالت إن docker-compose --verbose up[|build] سيساعدك في الوصول إلى جوهر مشكلتك. في حالتي ، كانت رسالة خطأ docker-compose مضللة - كنت بحاجة فقط للتحديث من docker 1.10 (قديم) إلى 1.12.

كشف الإسهاب عن هذا:
docker.errors.APIError: 400 خطأ في العميل: طلب غير صالح ("العميل أحدث من الخادم (إصدار API للعميل: 1.24 ، إصدار API للخادم: 1.22)")

في حالتي ، كان أمر واحد فقط كافيًا لإصلاح المشكلة: sudo usermod -aG docker $USER (عندما يكون $ USER هو المستخدم الحالي المسجل دخولك). بهذا ، حصلت على تشغيل ناجح لـ docker-compose run ... بدون sudo من $USER للمستخدم. (شكرا @ كيريل بابكين: كعكة :).

  • Ubuntu 16.04.3 (مثيل جديد نظيف للغاية على AWS)
  • Docker 17.12.1-ce (مثبت فوق apt ، متبوعًا بـ Get Docker CE لـ Ubuntu )

الإجابات الصحيحة هي من manjukori وyoloseem ؛ الشيء الوحيد الذي أود التأكيد عليه هو استخدام المتغير env $ USER لتعميم التعليمات sudo usermod -aG docker $USER (بافتراض أنك متصل بالصدفة كمستخدم يحتاج إلى إدارة عامل الإرساء). للحصول على تفاصيل مهمة أخرى حول تكوين عامل الإرساء ، راجع الرابط كما هو منشور أعلاه https://docs.docker.com/install/linux/linux-postinstall/.

@ ramblinwreck35 حررت تعليقي كما

بالنسبة لي لم يكن المستخدم عضوًا في مجموعة عامل النقل. لتحل...
sudo usermod -aG docker ${USER}
ثم قم بتسجيل الخروج والعودة مرة أخرى ، أو sudo su - ${USER} لتلقي التكوين المحدث في جهازك

systemctl restart docker
حلها

هذا بسبب الإذن حتى بعد إضافة المستخدم الخاص بك في مجموعة docker. إعادة تشغيل المجموعة أو إذن إعادة التحميل.

لقد استخدمت sudo. تم حل المشكلة.

لست متأكدًا تمامًا مما إذا كانت مشكلتي هي نفسها ، لكنني أنشر الحل هنا في حالة وجود شخص آخر لديه نفس المشكلة ويصادف هذا الموضوع.

في حالتي ، نسيت إضافة بعض الأدلة إلى .dockerignore . أعتقد أنه كان الكثير من البيانات بالنسبة إلى docker deamon ، لأنه نجح بعد استبعاد بعض أدلة البيانات.

كنت أنا و harwood نحقق في هذه المشكلة في image - كان لدينا صورة بحرف كبير. كنا أيضًا نوفر build: ./ . عندما أزلنا build: ./ رأينا رسالة خطأ جديدة: invalid reference format: repository name must be lowercase . أتمنى أن يساعد هذا أي شخص على تتبع هذه المشكلة.

مرحبا،

تم حل مشكلتي من خلال الخطوات التالية:

  1. أوقف خدمة عامل الإرساء
  2. أضف المستخدم الذي تستخدمه لتشغيل أمر docker-compose إلى مجموعة عامل الإرساء باستخدام الأمر التالي: usermod -aG docker NAME_OF_USER (CentOS 7)
  3. ابدأ خدمة عامل الإرساء

هل لديك خدمات ديسيبل التكوين مثل هذا؟

مجلدات:
- ./db/data:/var/lib/mysql


When i input `docker-compose build` with db server ,I got this error. 
So, I input `sudo chown -R $USER:$USER /db/data` in order to got data permission.And I tried "docker-compose build" without the error.

docker-compose.yml

الإصدار: '3'
خدمات:
ديسيبل:
بناء:
./db
الأمر: mysqld - افتراضي-المصادقة-البرنامج المساعد = mysql_native_password
الموانئ:
- "3306: 3306"
أحجام:
- ./db/data:/var/lib/mysql
env_file:
- mysql.env
مميز: صحيح
""

عملت إعادة تشغيل عامل الإرساء بالنسبة لي أيضًا.

لقد قمت بحلها عن طريق تغيير المالك من الجذر لي إلى /var/run/docker.sock . لا أعرف لماذا يتم تثبيت الحزمة المناسبة كجذر.

$ sudo show derp:derp /var/run/docker.sock

ركضت في مشكلة مماثلة الآن ، استغرق مني بضع ساعات لمعرفة السبب.

القصة تسير على هذا النحو: نحن نستخدم Jenkins لـ CI وتقوم بإجراء اختبارات لخدمتنا الرئيسية مع docker-compose لأنها تعتمد على بعض الخدمات الأخرى. دفع أحد الزملاء في العمل براش وفشل جينكينز في بنائه مهما كانت التعليمات البرمجية والاختبارات كانت جيدة تمامًا. ظهرت المشكلة على النحو التالي:

  • ينشئ Jenkins مجلدًا لكل خط أنابيب ويختصر اسمه إلى حد ما. إنه يشكل اسم مجلد مثل "$GIT_BRANCH-$RANDOMISH_HASH" والجزء المثير للفضول هو أنه يقطع السلسلة من البداية.
  • احتوى اسم الفرع الفاشل على شرطات ( - ) ، وانتهى اسم الدليل الناتج الذي تم إنشاؤه بواسطة Jenkins بـ - .
  • ثم يقوم Jenkins بتشغيل docker-compose في هذا المجلد ، وبشكل افتراضي ، يستخدم عامل إنشاء عامل إنشاء اسم الدليل كبادئة لتسمية الحاويات.
  • هذا يعني أنه يحاول إنشاء حاويات بأسماء تبدأ بشرطة ( - ) ويبدو أن هذا الحرف غير قانوني ليبدأ اسم حاوية عامل الإرساء.
  • ثم فشل docker-compose مع ظهور خطأ عام مع رسالة مضللة "تعذر الاتصال بخفي Docker - هل يعمل؟" رسالة.

كان الحل في حالتي هو تحديد اسم مشروع مخصص ( -p ) يمكن استخدامه بدلاً من اسم الدليل الافتراضي:

docker-compose -f docker-compose.ci.yml -p "$SANITIZED_GIT_BRANCH" build

@ alberto56 العمل الثابت:

chown -R user:user .

أيضًا ، قم بتحديث ملف .dockerignore الخاص بك إذا كان هناك أي شيء لا يُفترض أن يتم شحنه إلى عامل الإرساء ليتم بناؤه.

جرب هذا إضافة sudo هذا هو

sudo docker-compose up

الحل بالنسبة لي هو إضافة المستخدم الخاص بي إلى مجموعة عامل الإرساء ، وذلك بفضل عدم ضرورة استخدام sudo عند استخدام عامل الإرساء
https://techoverflow.net/2017/03/01/solving-docker-permission-denied- while-trying-to-connect-to-the-docker-daemon-socket/

في حالتي ، إذا لم يكن لدى المستخدم تصاريح لـ /var/run/docker.sock docker-compose ، حاول الاتصال بـ http+docker://localhost .
sudo usermod -a -G docker $USER قد يصلح ذلك.

في هذه المرحلة https://github.com/docker/compose/issues/4181#issuecomment -317120015
إعادة تشغيل جهاز الكمبيوتر سيصلح هذه المشكلة

CentOS
يجب أن أقول ، لقد قمت بحلها عن طريق قطع الاتصال وإعادة الاتصال بالخادم ...

ليرة لبنانية ؛ الدكتور وقف التعليقات غير الضرورية
رفاق. أعتقد أن إعادة التشغيل لا ينبغي أن تكون جزءًا من أي مشكلة في GitHub. رجاء. إنه يصرف انتباهنا عما نفعله بإشعارات غير مفيدة. ضع في اعتبارك أن التعليق هنا يهدف إلى إضافة قيمة إلى المشكلة نفسها. إعادة التشغيل لا تحلها لأنها تحدث مرة أخرى. في بعض النقاط على وجه الخصوص ، يكون المقبس عالقًا ، وبالتالي إذا وجد شخص ما أي شيء آخر لم يتم التعليق عليه مسبقًا في هذا الموضوع يضيف قيمة ، فالرجاء التعليق ، ثم إذا لم يكن كذلك ، فيرجى تجنب إنشاء الإشعارات :) - آسف على الشيء الطويل.

sudo chown $USER:docker /var/run/docker.sock يعمل لدي.

sudo which docker-compose up يعمل بشكل جيد بالنسبة لي على Ubuntu 16.

يبدو أن العديد من مشاكل الوصول المختلفة. لقد حصلت على هذه المشكلة في Fedora 28 الجديد وقمت بحلها عن طريق تعطيل selinux.

حل لي عن طريق الكتابة
sudo dockerd
//ثم
sudo docker-compose up -d

اضبط وحدة تخزين "/var/run/docker.sock:/var/run/docker.sock" وستعمل

لقد نجحت بعد إعادة تشغيل الخادم :)

كان منجم فقط بسبب عدم وجود docker-compose على PATH . إجابةpelican حلها

ما عليك سوى اتباع التعليمات المذكورة في هذه المشكلة وإعادة تشغيل جهازك.

مجرد القيام بهذا العمل بالنسبة لي:

sudo apt-get purge golang-docker-credential-helpers

فقط واجهت حالة حيث نجحت وعدة صفوف من shell لاحقًا (بدون أي تثبيت / ترقية للحزمة) ، إنها تلقي بهذا الخطأ. لقد جربت للتو مشاريع أخرى وهي تُبنى حتى أشعر بشيء معطل في ذاكرة التخزين المؤقت في عامل الإرساء أو الأجزاء الداخلية ذات الصلة بهذه الصورة .. لا يعمل Docker image prune أو إعادة تشغيل خدمة عامل الإرساء أو نظام التشغيل. تم تثبيت Docker بشكل صحيح (دون الحاجة إلى sudoing) ..

تحرير: أدى تقليم النظام وإزالة هذه الحاوية المعينة إلى حل المشكلة

بالنسبة لي لم يكن المستخدم عضوًا في مجموعة عامل النقل. لتحل...
sudo usermod -aG docker ${USER}
ثم قم بتسجيل الخروج والعودة مرة أخرى ، أو sudo su - ${USER} لتلقي التكوين المحدث في جهازك

هذا هو الحل الصحيح

sudo docker-compose run ....... عمل لي :)

واجهت نفس المشاكل ، وأعدت إعادة تشغيل عامل الإرساء ، شكرًا جزيلاً لك

الإجابة موجودة في وثائق Docker في قسم خطوات ما بعد التثبيت:
https://docs.docker.com/install/linux/linux-postinstall/

كما ورد في الوثيقة:

يرتبط Docker daemon بمقبس Unix بدلاً من منفذ TCP. افتراضيًا ، يكون مقبس Unix مملوكًا لجذر المستخدم ويمكن للمستخدمين الآخرين الوصول إليه فقط باستخدام sudo

هذا هو السبب في أنه يعمل على تنفيذ الأمر مع sudo .

إذا كنت تريد بدلاً من ذلك أن يتصل المستخدم المخصص الخاص بك بـ docker (كما في حالتي) ، فيجب عليك إضافته إلى مجموعة docker مع:

sudo usermod -aG docker $USER

في الواقع ، فإن ملكية مقبس عامل الإرساء هي:
srw-rw---- 1 root docker 0 Oct 3 11:31 /var/run/docker.sock

بعد ذلك ، كما ورد في المستند ، يجب عليك تسجيل الخروج وتسجيل الدخول مرة أخرى أو إعادة التشغيل إذا كنت تختبر على جهاز افتراضي.

لقد اختبرت جهازًا ظاهريًا Ubuntu 14.04 يعمل على Parallel ولم أكن بحاجة إلى إعادة تشغيله. أنا فقط بحاجة إلى تسجيل الدخول مرة أخرى لحل المشكلة.

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

قم بتشغيل الأمر كجذر

export DOCKER_HOST = 127.0.0.1

ثم حدد موقعك في مجلد docker-compose.yml وقم بتنفيذ الأمر:
su docker-compose up

كما هو مكتوب في التعليقات السابقة ، فإن محاولة بناء كل خدمة على حدة يعطي رسائل خطأ أكثر فائدة.
كان لدي هذا الخطأ لأن اسم صورتي كان بأحرف كبيرة داخل docker-compose.yml.
أدى تغيير كل من اسم الخدمة وخصائص صورة الخدمة إلى حل المشكلة.

ما عليك سوى إعادة تشغيل عامل الإرساء وسيعمل بشكل مثالي.
تشغيل: service docker restart ثم قم بتشغيل أي أمر docker تريده.

تحتاج إلى إضافة المستخدم الخاص بك إلى مجموعة عامل الإرساء لتجنب "sudo docker ..."
sudo usermod -aG docker username

هل المستخدم الخاص بك في مجموعة مستخدمي عامل الإرساء؟

sudo usermod -aG docker ${USER}

تحقق من هذا المقال: https://medium.com/@ibrahimgunduz34/if -you-face-an-issue-like-couldnt-connect-to-docker-daemon-at-http-docker-localunixsocket-is-27b35f17d09d

لم يكن يعمل لي أيضا. لقد قمت للتو بإضافة sudo قبل الأمر وبدأ العمل ..

sudo dockerd

يعطيني

Segmentation fault

لذا فإن مشكلتي هي أن برنامج Docker daemon لا يعمل ، لكني لا أعرف ما يجب علي فعله

لقد وجدت هذا مفيدا

لقد قمت بترقية docker-compose من 1.16.1 إلى 1.23.1 ، وتم حل المشكلة!

لست متأكدًا مما حدث ، لقد أعدت تشغيل جهاز الكمبيوتر الخاص بي وبدأ العمل !!

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

لقد واجهت هذا اليوم بسبب خطأ ارتكبته في ملف docker-compose.yml الخاص بي.

لقد قمت بطريق الخطأ بتضمين إعلان المفتاح volumes: مرتين ، وقد أدى ذلك إلى فشل تعيين docker.sock في حاوية داخلية. بدا الخطأ كما يلي:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    volumes:
      - datafiles:/datafiles

الذي كان يجب أن يقول:

    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - datafiles:/datafiles

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

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

لقد استخدمت هذا الرابط https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-18-04 عند تنفيذ أمر Docker بدون قسم Sudo.

سؤال بعيد المنال قليلاً ، أبحث لبعض الوقت عن وثائق أو مراجع بخصوص تعريف مخطط http+docker:// . هل لدى أي شخص هنا عنوان URL أو مرجع لهذا المخطط؟ شكر!

كانت لدي هذه المشكلة ، لكنني أدركت أن رسالة خطأ عامل الإرساء كانت غير مفيدة ومضللة بشكل كبير. للعثور على السبب الفعلي ، قمت فقط docker build <service> يدويًا لكل خدمة في docker-compose.yml حتى وجدت واحدة رفضت الإنشاء. في حالتي ، كانت مشكلة الأذونات مع __pycache__ في دليل الخدمة.

لدي نفس المشكلة ولم يساعد أي من الحلول.
جربت فكرة Rosso84.
توقف عامل إرساء خدمة sudo
sudo dockerd
الآن يمكنني الركض
عامل الميناء يؤلف
بنجاح.
يستمر القليل من الغرابة -
sudo عامل ميناء-يؤلف
يقول الأمر غير موجود.

عملت معي:
sudo groupadd عامل إرساء
sudo gpasswd-a $ USER docker

إما أن تفعل عامل إرساء newgrp أو تسجيل الخروج / الدخول لتفعيل التغييرات على المجموعات.
newgrp عامل ميناء

واجهت هذه المشكلة عند استخدام وسيطة بناء غير محددة ، والتي تم استخدامها بعد ذلك في علامة صورتي FROM . تم: اضبط بنية البناء على شيء آخر غير سلسلة فارغة.

إعادة تشغيل الخادم حلها بالنسبة لي

إذا لم تكن مستخدمًا جذريًا ، فحاول إضافة المستخدم إلى إذن عامل الإرساء

sudo usermod -a -G docker theUser

لقد تم إصلاحه عن طريق إعادة تشغيل Ubuntu الخاص بي أيضًا ...

مرحبا ،

حل المشكلة مع sudo قبل الأمر ؛) ،

شكر،
موتيز

إنها مسألة إذن.

- sudo chown $USER:docker /var/run/docker.sock نجح هذا الأمر بالنسبة لي في إعداد ubuntu 18.

لست متأكدًا مما حدث ، لقد أعدت تشغيل جهاز الكمبيوتر الخاص بي وبدأ العمل !!

خذ إعجابك يا سيدي

فقط اكتب sudo قبل الأمر docker-compose !

هذا عمل معي
sudo chown $USER:docker /var/run/docker.sock

usermod -a -G docker USER
ثم قم بتسجيل الخروج وتسجيل الدخول مرة أخرى USER.

لقد واجهت نفس الخطأ كلما كان لدي متغير داخل docker-compose.yml غير موجود داخل .env.

خطأ غريب لمثل هذا السيناريو ولكن - أيا كان. :)

فقط اكتب sudo قبل الأمر docker-compose !

خذ اعجابك يا سيدي!
يا إلهي ... ، لكنها تعمل بشكل جيد بالنسبة لي ، عمل رائع!

كان علي أن أفعل:
sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose

وقد نجحت!

لقد قمت بتثبيت docker-compose وفي نفس الوقت قمت بحل المشكلة من خلال الخطوات التالية:
الخطوة 1:
sudo curl -L https://github.com/docker/compose/releases/download/1.21.2/docker-compose- uname -s - uname -m -o / usr / local / bin / عامل ميناء يؤلف

الخطوة 2:
sudo chmod + x / usr / local / bin / docker-compose

الخطوه 3:
عامل ميناء يؤلف - نسخة

الخطوة الرابعة:
تصدير DOCKER_HOST = 127.0.0.1: 2375

الخطوة الخامسة:
usermod -a -G docker دولار USER

الخطوة 6:
أعد تشغيل الكمبيوتر أو قم بتشغيل الأمر
اغلق

نجح هذا بالنسبة لي:

sudo usermod -aG docker $ (whoami)

تسجيل خروج

تسجيل الدخول

تحقق للتأكد من أنك في مجموعة "عامل ميناء".

- sudo chown $USER:docker /var/run/docker.sock نجح هذا الأمر بالنسبة لي في إعداد ubuntu 18.

شكرا!

مرحبا،
تلقيت نفس رسالة الخطأ:

خطأ: تعذر الاتصال بـ Docker daemon على http + docker: // localhost - هل هو قيد التشغيل؟
إذا كان في موقع غير قياسي ، فحدد عنوان URL باستخدام متغير البيئة DOCKER_HOST.

لكن هذه الرسالة كانت مضللة ، لأن ديمون عامل الشحن الخاص بي لم يكن لديه أي مشاكل في الاتصالات.
كان السبب خطأ غبيًا ارتكبته في يمل (لم أكن أعرفه من قبل). كان عن طريق الخطأ حرفًا كبيرًا في اسم الصورة. أدى ذلك إلى حقيقة أنه لا يمكن تشكيل الخدمة ، حيث يُسمح فقط باستخدام الأحرف الصغيرة كأسماء.
لقد لاحظت الخطأ عندما حاولت إنشاء Dockerfile بشكل منفصل مع الأسماء.
سيكون مفيدًا إذا كان بإمكان عامل الإرساء إعادة توجيه الأخطاء التي تحدث داخل مشكلات الإنشاء. منذ ذلك الحين ، كما قال @ shin- أيضًا ، لا يزال من الممكن أن يحدث هذا الخطأ لأسباب عديدة في هذا الوقت. على الرغم من مرور بعض الوقت منذ أن كتب @ shin هذا ، إلا أن المشكلة لا تزال قائمة. ربما قد يكون مفيدا

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

$ cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core) 

$ sudo service docker start
$ sudo service docker status

مرحبا،

واجهت نفس المشكلة. ولكن تم حلها بعد أن أعدت تشغيل جهاز VM.

صوراب

هذا الأمر يحل لي:

sudo usermod -aG مستخدم عامل إرساء

الأوامر:

sudo ln -s / usr / local / bin / docker-compose / usr / bin / docker-compose
sudo docker-compose up -d

إذا قمت للتو بتثبيت عامل الإرساء ومنحت مستخدمًا للتو مجموعة عامل الإرساء ، فحاول تسجيل الخروج من هذا المستخدم وتسجيل الدخول مرة أخرى.

sudo service docker start && docker-compose up -d

يرجى المحاولة مع الأمر أعلاه. تم حل المشكلة بالنسبة لي

لا أحد من الحلول المذكورة أعلاه قد أصلحه بالنسبة لي. أي أفكار أخرى؟

خطأ: تعذر الاتصال بـ Docker daemon على http + docker: // localhost - هل هو قيد التشغيل؟

إذا كان في موقع غير قياسي ، فحدد عنوان URL باستخدام متغير البيئة DOCKER_HOST.

حل مشكلة كوماندو:

sudo chown $USER:docker /var/run/docker.sock

👇🏻👇🏻👇🏻👇🏻👇🏻👇🏻
"الحل"
👆🏿👆🏿👆🏿👆🏿👆🏿👆🏿

إذا لم تجرب أي شيء بعد من هذا المداس ، فقم بتشغيل هذين الأمرين وسيحل هذه المشكلة بالذات:
يضيف sudo usermod -a -G docker $USER # المستخدم الحالي إلى مجموعة docker
ينشط newgrp docker # أذونات جديدة لمجموعة docker

يضيف sudo usermod -a -G docker $ USER # المستخدم الحالي إلى مجموعة عامل الإرساء
newgrp docker # ينشط أذونات جديدة لمجموعة عامل الميناء

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

نحتاج أولاً إلى إعادة تحميل tmp بإذن exec بالتنفيذ

  1. sudo mount / tmp -o remount، exec
    ثم جعل عامل الميناء
  2. "بدء عامل إرساء الخدمة" في المستخدم الجذر أو "بدء تشغيل عامل إرساء خدمة sudo"
    ثم
  3. عملت "Docker-compose up" أو "docker-compose start" بالنسبة لي

sudo docker-compose up -d
خطأ: تعذر الاتصال بـ Docker daemon على http + docker: // localhost - هل هو قيد التشغيل؟

إذا كان في موقع غير قياسي ، فحدد عنوان URL باستخدام متغير البيئة DOCKER_HOST.
加上 sudo 也是 报 同样 的 错误

مجموعات الجذر
الجذر: عامل ميناء الجذر
الجذر ضمن مجموعة عامل ميناء

تم حل المشكلة مع هذا:

  1. sudo usermod -aG docker $USER
  2. قم بتسجيل الخروج ثم تسجيل الدخول مرة أخرى حتى يتم إعادة تقييم عضوية مجموعتك.
  3. تحقق من أنه يمكنك تشغيل أوامر docker بدون sudo: docker info

DOCKER_HOST الافتراضي هو unix: ///var/run/docker.sock. إذا كان هذا الملف غير موجود أو لم يكن لدى المستخدم الحالي حق الوصول إلى هذا الملف ، فإنه يحاول الاتصال بـ http + docker: // localhost
محاولة:
sudo chown /var/run/docker.sock
ثم حاول مرة أخرى تشغيل docker-compose up
عملت من أجلي.

هل حاولت بدون sudo ؟ لا يجب أن تكون في حاجة إليه وقد يؤدي ذلك إلى إفساد الأشياء في حالتك. أيضًا ، ماذا ترى عند تشغيل docker info ؟
شكر! إنها تعمل!

ولكن من فضلك Docker ، أضف تحذيرًا صحيحًا!

تلقيت هذه الرسالة عند نسخ وحدات التخزين من آلة التخفيض ، انتهى الأمر بـ owerdrite metadata.db داخل /var/lib/docker/volumes ، ثم تعطل. الإصلاح بسيط للغاية

docker system prune --volumes -f && rm /var/lib/docker/volumes/metadata.db && docker-compose up -d

يحدث هذا غالبًا عند تشغيل أوامر docker مثل sudo بينما تقوم بتشغيل أوامر docker-compose بدونها.
ما عليك القيام به هو إضافة مستخدم عامل ميناء إلى مجموعة sudo. (مثل usermod -aG docker $ USER)
ثم يمكنك تشغيل كل من comands (docker and docker-compose) بدون sudo.

كان لدي نفس الخطأ بالضبط. أزلت الحاوية (المعرف) وبدأت عامل الإرساء مرة أخرى. ذاك حل لي المشكلة. لا يحذف أي بيانات تم تحميلها بالفعل.

انتقل إلى دليل cvat وقم بتشغيل ما يلي في جهازك الطرفي:

  • sudo docker ps (يعرض معلومات حول عمال الرصيف قيد التشغيل)
  • توقف عامل الإرساء "هنا معرف حاويتك" (على سبيل المثال ، كان لي هو e6339eae0675)
  • sudo docker rm "هنا معرف الحاوية الخاصة بك"
  • sudo docker-compose up -d

لدي نفس المشكلة ، _sudo docker-compose up_ العمل من أجلي.

كان الحل بالنسبة لي هو إيقاف openvpn الذي كنت أستخدمه.

لست متأكدًا مما حدث ، لقد أعدت تشغيل جهاز الكمبيوتر الخاص بي وبدأ العمل !!

هذا يعمل.

الخطوات التالية حلت المشكلة بالنسبة لي.

إزالة عامل الميناء:
$ sudo apt-get remove docker docker-engine
إعادة التثبيت مع
curl -sSL https://get.docker.com/ | sh

إضافة مستخدم إلى مجموعة:
sudo usermod -aG docker user

لاحظ فقط أنك بحاجة إلى exit the shell وتسجيل الدخول مرة أخرى للأمر usermod للبقاء.

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

مع تحياتي

إضافة مستخدمين عاديين إلى مجموعة عامل الإرساء

# usermod -a -G docker user
# exit
$ exec $SHELL
$ docker-compose ps

لقد أصلحت هذا عن طريق إلغاء تعيين المتغير CONTAINER_REGISTRY_BASE

$ sudo usermod -aG docker $ USER

لقد وجدت أنه كان متغير بيئة مفقودًا كان يكسر إعدادات image: في docker-compose.yml

¯_ (ツ) _ / ¯

الخطوات التالية حلت المشكلة بالنسبة لي.

إزالة عامل الميناء:
$ sudo apt-get remove docker docker-engine
إعادة التثبيت مع
curl -sSL https://get.docker.com/ | sh

إضافة مستخدم إلى مجموعة:
sudo usermod -aG docker user

شكرا لك. أدى إلغاء التثبيت ثم إعادة التثبيت وتغيير أذونات المستخدم وتسجيل الخروج وتسجيل الدخول مرة أخرى إلى حلها بالنسبة لي.

لا أحد من الحلول المذكورة أعلاه قد أصلحه بالنسبة لي. أي أفكار أخرى؟
خطأ: تعذر الاتصال بـ Docker daemon على http + docker: // localhost - هل هو قيد التشغيل؟
إذا كان في موقع غير قياسي ، فحدد عنوان URL باستخدام متغير البيئة DOCKER_HOST.

حل مشكلة كوماندو:

sudo chown $USER:docker /var/run/docker.sock

هذه ثابتة بالنسبة لي.

لقد فعلت كل شيء باستثناء الارتباط بشكل رمزي بتكوين عامل الميناء. الأوامر التالية أصلحت مشكلتي

  1. إضافة مستخدم إلى مجموعة عامل الإرساء (إذا لم تكن مضافة بالفعل)
    sudo usermod -aG docker $USER
  2. قم بإنشاء ارتباط رمزي إلى / usr / bin باستخدام الأمر التالي
    $ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  3. أعد تشغيل خدمة عامل الإرساء
    $ sudo service docker restart

في حالتي ، لم يعمل أي مما سبق

كما اتضح ، كان لدي في ملف الإنشاء اسم صورة camelCase ( eg imageName ) ، وكان ذلك يتسبب في Couldn't connect to Docker daemon at http+docker://localunixsocket . تغيير ذلك إلى dash-case حل المشكلة (غريب جدًا).
كانت خدمة Docker تعمل بشكل جيد ، كما أن docker ps والمعلومات كانت تبلغ أيضًا عن عدم وجود مشكلات ، وكان تشغيل ملف الإنشاء هذا هو المشكلة.

Ubuntu 18.04
docker 19.03.6
docker-compose 1.17.1 (compose file version 3)

sudo docker-compose up -d

واجهت هذه المشكلة مرة أخرى وأدركت أنه يجب إعادة تشغيل Ubuntu بعد إضافة مستخدم mu إلى مجموعة Docker

sudo usermod -aG مستخدم عامل إرساء

هذا بواسطة @ كيريل بابكين حلها بالنسبة لي. كان لدي مستخدم تم إنشاؤه حديثًا وليس في مجموعة عامل الإرساء. شكر.

في حالتي ، كان docker-compose.yml يفتقد تعريف env var في قسم image

prod-image-generation:
    image: my-image:${BUILD_NUMBER}

لقد فقدت حوالي 30 دقيقة معها. من فضلك اقترح خطأ ذا مغزى لهذا

تم تعيين الحل لقيمة var

فقط التصدير الفارغ يعمل معي.

export DOCKER_HOST=

تثبيت Docker الجديد هنا في Ubuntu 18. بافتراض أن المستخدم موجود بالفعل في مجموعة docker ، فقط قم بتثبيت خدمة Docker بحيث تبدأ تلقائيًا sudo systemctl enable docker ثم أعد التشغيل و voila sudo init 6

كان لديه نفس المشكلة.
تم حلها في نظامي عن طريق كتابة "إنشاء عامل ميناء"

لقد مررت بنفس المشكلمة للتو. لقد وجدت أنه لسبب ما لم تتم إضافة المستخدم الخاص بي إلى مجموعة أمان عامل الإرساء ، وبالتالي لم يسمح لي بإذن على مقبس unix الخاص بالرصيف وإعطائي _ERROR: تعذر الاتصال بـ Docker daemon على http + docker: // localunixsocket - هل هو قيد التشغيل_ .

أدت إضافة مجموعة عامل الإرساء إلى المستخدم الحالي ، ثم تسجيل الخروج والعودة مرة أخرى إلى إصلاح كل شيء بالنسبة لي:
sudo usermod -aG docker $USER

أتبع ذلك ، ثم أعاد تشغيل الجهاز ، وتشغيل docker-compose up --build 👍

تبين

sudo usermod -aG docker $USER

أتبع ذلك ، ثم أعاد تشغيل الجهاز ، وتشغيل docker-compose up --build +1

لا تحتاج إلى إعادة التشغيل ، يكفي إعادة تسجيل الدخول. فعلت ذلك من أجلي

لست متأكدًا مما حدث ، لقد أعدت تشغيل جهاز الكمبيوتر الخاص بي وبدأ العمل !! 🤓

إنه عمل. لا اعرف لماذا هاها

تثبيت Docker الجديد هنا في Ubuntu 18. بافتراض أن المستخدم موجود بالفعل في مجموعة docker ، فقط قم بتثبيت خدمة Docker بحيث تبدأ تلقائيًا sudo systemctl enable docker ثم أعد التشغيل و voila sudo init 6

أنا أستخدم Manjaro وهذا الحل يعمل بالنسبة لي

شكرا mikemix

لقد جربت الكثير من الخطوات بناءً على الخطأ أدناه بعد تشغيل dockered .

can't initialize iptables table nat': Table does not exist (do you need to insmod?) Perhaps iptables or your kernel needs to be upgraded. (exit status 3)

لكن بدء تشغيل Terminal كمسؤول عمل.
sudo service docker start
تذكر : يجب تشغيل Terminal / Ubuntu على نظام التشغيل Windows 10 كمسؤول

في Ubuntu 20.04 كنت بحاجة إلى الجري

sudo chmod 777 /var/run/docker.sock

وبدأ العمل على الفور.


⚠️ تحرير

كن حذرا مع الأمر أعلاه

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

sudo chmod 777 /var/run/docker.sock

يمنح هذا أي مستخدم لهذا الجهاز حق الوصول الكامل إلى ملف مملوك عادةً بواسطة الجذر. يمكنك إنشاء ثغرة أمنية شديدة في نظامك بهذه الطريقة. راجع https://stackoverflow.com/questions/47854463/docker-got-permission-denied- while-trying-to-connect-to-the-docker-daemon-

كما هو مذكور هنا وفي الرابط أعلاه ، يجب أن يقوم sudo usermod -aG docker $USER (أو اسم المستخدم المعني بدلاً من $ USER) بالخدعة دون تقويض إجراءات أمان النظام.

Taranchul أنت على حق تماما! كنت أستخدم دائمًا sudo usermod -aG docker $USER . لكن لسوء الحظ ، يبدو أن sudo usermod -aG docker $USER لا يعمل على Ubuntu 20.04 بعد الآن.

أي أفكار عما يمكن أن يحدث خطأ؟

للأسف ، لا أفعل. هل أعدت تسجيل الدخول مع هذا المستخدم (الذي عمل لي) ، أو أعدت تشغيل الجهاز؟ أعتقد أنك فعلت ذلك ، لكن من الأفضل أن تكون على يقين.

فقط في حالة رغبتك أنت أو أي شخص آخر في استعادة الأذونات الأصلية لـ docker.sock ، فهي 660 ، على الأقل في Ubuntu Server 18.04.

Taranchul نعم حاولت إعادة تسجيل الدخول وإعادة التشغيل. لم أعمل لا على جهاز الكمبيوتر المحمول ولا على محطة العمل الخاصة بي.

ربما يكون الإصدار 20.04 ، حيث تم إصدار نسخته النهائية بالأمس فقط. عادةً ما أنتظر اللقطة الأولى لأي إصدار LTS في وقت ما في الصيف ، وآمل أن يتم إصلاح معظم مشاكل التسنين بحلول ذلك الوقت.

هل يمكنك اختباره على إصدار أقدم؟

Taranchul يبدو أنها مشكلة في 20.04. يعمل بشكل جيد بتاريخ 19.04.2007

هذه معلومة مفيدة 👍 على الرغم من أنها لا تساعدك كثيرًا في هذه اللحظة. لذا ، هل من الممكن أن تستخدم 18.04 حتى 20.04 قد تصبح أكثر نضجًا في هذا الأمر؟

لقطة واحدة بعيدة: هل تحققت من إضافة المستخدم بالفعل إلى مجموعة عامل الإرساء؟

Taranchul أعني أنه يمكنني استخدام 18.04 ، لكن بما أنني قمت

هل تشغيل جميع أوامر عامل الإرساء بـ sudo خيار صالح حتى يتم إصلاحه؟

للأسف ، لا أعرف الكثير عن عامل ميناء ، لذا لا يمكنني الإجابة على هذا السؤال.

لقد وجدت هذه الإرشادات لتثبيت عامل الإرساء على 20.04 والتي تقوم بذلك بشكل مختلف قليلاً: https://www.how2shout.com/how-to/how-to-install-docker-ce-on-ubuntu-20-04-lts- focal-fossa.html

يضيفون مجموعة عامل الإرساء قبل إضافة المستخدم. ربما هذا ضروري في 20.04؟ (لا أمتلكها حتى الآن ، لذا لا يمكنني اختبارها بنفسي.)

sudo groupadd docker
sudo gpasswd -a $USER docker
newgrp docker # or relogin to make the new group known to the system

Taranchul أنت تعرف ما هو غريب .... قمت بتشغيل sudo chmod 660 /var/run/docker.sock لإعادة تعيين الأذونات وبعد إعادة التشغيل لا يزال يعمل.

هل يمكنني اعتبار المشكلة قد تم إصلاحها أم أنه لا يزال هناك خطر أمني؟
ربما نسيت خطوة عندما قمت بتثبيت كل شيء بالأمس ... وهي في الواقع ليست مشكلة في Ubuntu 20.04؟

وفقًا لهذا السؤال على askubuntu.com ، التحميل في الأصل إلى sudo للبدء ، لكنه حصل على إمكانية استخدام غير الجذر مع الإصدار 19.03. في التعليقات ، ذكر أحدهم أنه بدون مجموعة عامل التحميل ، كانت ملكية docker.sock root:root . فقط بعد إنشاء مجموعة Docker وإضافة المستخدم إليها وإعادة تشغيل خادم Docker ، تم تغييرها إلى root:docker . لذا ، فإن التحقق مما إذا كانت المجموعة موجودة أم لا ( تعديل: وإذا كانت موجودة ، فإن التحقق من ملكية docker.sock ) يبدو فكرة جيدة. أيضًا لإعادة تشغيل مثيل عامل الإرساء.

ضع في اعتبارك إحدى الإجابات الأقل تقييمًا هناك ، تلك التي تتحدث عن قوائم ACL وكيف يمكنك تمكين الوصول إلى docker.socks بواسطة الأمر setfacl .

أخيرًا وليس آخرًا ، هناك تحذيرات حول الأخير بالإضافة إلى إضافة مستخدم إلى مجموعة عامل الإرساء ، لأنه يمنح هذا المستخدم حقوق وصول مهمة. 😎 لكنني ما زلت أعتقد أن هذه الطرق أفضل من chmod أذونات الملف.

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

تضمين التغريدة لا يزال يعمل بعد إعادة تشغيل Docker. لذلك أعتقد أنه كان خطأي فقط. شكرا لمساعدتك!

flulu يسعدني ، وشكرًا على تلقي تحذيري الأول بالود كما كان من المفترض. :)

في نظام التشغيل Windows 10 ، تم حلها عن طريق الترقية إلى WSL2 ، ودعم Ubuntu Distro الخاص بي إلى WSL2.
https://docs.microsoft.com/en-us/windows/wsl/wsl2-install

تم حل هذه المشكلة عندما أعدت تشغيل الكمبيوتر. :ابتسامة:

هذا حل مشكلتي.

sudo usermod -aG docker myuser

شكرا @ كيريل بابكين كثيرا.

حل بواسطة:

sudo chmod 666 /var/run/docker.sock
sudo chmod 666 /var/run/docker.sock

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

@ ماتيو بومبيلي
كان لي نفس القضية.
تحتاج إلى إعادة تشغيل عامل ميناء.
$ service docker restart
لقد حللت ذلك مع هذا.

لقد كان الحل وقد نجح ذلك شكرا لك!

تلقيت هذا الخطأ في ubunt 20.0.4

لقد قمت بالتثبيت مع apt get from apt sources. هل هناك نسخة أحدث في ppa؟

فعلت
newgrp docker
وعملت

كنت أعمل على Lightsail. إعادة تشغيل الصورة إصلاحها.

ربما حاول فقط إضافة مستخدم Linux الخاص بك إلى المجموعة: docker ، ثم إعادة تسجيل الدخول.

في Ubuntu 20 ، يعمل عامل الإرساء في وضع التشغيل المفاجئ ، كما ترى عبر "systemctl status snap.docker.dockerd.service"

إنها تحاول البدء بمجموعة /var/run/docker.sock التي تم تعيينها على "عامل إرساء" ، ولكن افتراضيًا ، لا توجد هذه المجموعة في Ubuntu 20 ، حتى إذا حددت Docker snap في التثبيت.

لإصلاح ذلك ، قم بإنشاء المجموعة ، وأضف المستخدم الخاص بك إلى المجموعة ، ثم أعد التشغيل

sudo groupadd عامل إرساء
sudo usermod -G docker دولار أمريكي
sudo إعادة التشغيل

لا يمكنك فقط تسجيل الخروج ثم تسجيل الدخول ، وبقدر ما تمكنت من معرفة ذلك ، لا يمكنك إعادة تشغيل snap.docker.dockerd أو snapd نفسه وتغيير الأذونات. لا أعرف كيف أخدعه لفعل الشيء الصحيح دون إعادة التشغيل ، لذا إذا كنت تعرف ، فيرجى إبلاغي بذلك.

أنا في 20.04 ولدي نفس المشكلة ويمكنني أن أفعل sudo docker info لكن ليس كمستخدم عادي. كنت في مجموعة docker من قبل ، ولا يزال بإمكاني تصفح موقع Wordpress الخاص بي على 127.0.0.1. اضطررت إلى تشغيل newgrp docker لإصلاحه. غريب جدًا لأن كل ما فعلته هو قفل محطة العمل هذه منذ أن قمت بإعداد docker منذ يومين. ربما كسر تحديث شيء ما؟

newgrp docker يعمل لدي

تعيين DOCKER_HOST عمل يدويًا بالنسبة لي

  1. اكتشف مسار ملف sock الخاص بك: (باستخدام sudo service docker status أو ps -aef | grep docker )
  2. تصدير DOCKER_HOST=unix://<path to sock file>

في حالتي ، كان ملف sock موجودًا في /run/containerd/containerd.sock
لذلك اضطررت إلى تشغيل export DOCKER_HOST=unix:///run/containerd/containerd.sock

بالنسبة لحالتي - بعد إعادة تشغيل الكتلة ، تم حل المشكلة.

في Ubuntu 20 ، يعمل عامل الإرساء في وضع التشغيل المفاجئ ، كما ترى عبر "systemctl status snap.docker.dockerd.service"

إنها تحاول البدء بمجموعة /var/run/docker.sock التي تم تعيينها على "عامل إرساء" ، ولكن افتراضيًا ، لا توجد هذه المجموعة في Ubuntu 20 ، حتى إذا حددت Docker snap في التثبيت.

لإصلاح ذلك ، قم بإنشاء المجموعة ، وأضف المستخدم الخاص بك إلى المجموعة ، ثم أعد التشغيل

sudo groupadd عامل إرساء
sudo usermod -G docker دولار أمريكي
sudo إعادة التشغيل

لا يمكنك فقط تسجيل الخروج ثم تسجيل الدخول ، وبقدر ما تمكنت من معرفة ذلك ، لا يمكنك إعادة تشغيل snap.docker.dockerd أو snapd نفسه وتغيير الأذونات. لا أعرف كيف أخدعه لفعل الشيء الصحيح دون إعادة التشغيل ، لذا إذا كنت تعرف ، فيرجى إبلاغي بذلك.

أعتقد أنك تقصد sudo usermod -aG docker $ USER. سيؤدي التشغيل بدون -a إلى "إذا كان المستخدم حاليًا عضوًا في مجموعة غير مدرجة ، فسيتم حذف المستخدم من المجموعة".

لا يمكنك فقط تسجيل الخروج ثم تسجيل الدخول ، وبقدر ما تمكنت من معرفة ذلك ، لا يمكنك إعادة تشغيل snap.docker.dockerd أو snapd نفسه وتغيير الأذونات. لا أعرف كيف أخدعه لفعل الشيء الصحيح دون إعادة التشغيل ، لذا إذا كنت تعرف ، فيرجى إبلاغي بذلك.

يجب أن يكون إعادة تسجيل الدخول كافيًا لتنشيط المجموعة الجديدة لهذا المستخدم.

جاء هذا بالنسبة لي أيضا. احتجت إلى قطع الاتصال بعميلي nordvpn لسبب ما.

sudo docker-compose up -d works !!!

هل حاولت بدون sudo ؟ لا يجب أن تكون في حاجة إليه وقد يؤدي ذلك إلى إفساد الأشياء في حالتك. أيضًا ، ماذا ترى عند تشغيل docker info ؟

يا عبقري سخيف. انت تعلم ذلك ؟ شكرا جزيلا أخي . أنت أنقذتني من الجحيم.

لست متأكدًا تمامًا من السبب ، ولكن في حالتي كان لدي وحدة فرعية لم يتم سحبها. تشغيل git submodule update --init ثم إعادة تشغيل docker-compose build إصلاح المشكلة بالنسبة لي

لست متأكدًا مما حدث ، لقد أعدت تشغيل جهاز الكمبيوتر الخاص بي وبدأ العمل !!

كذلك هنا. 😃

لقد مررت بنفس المشكلمة للتو. لقد وجدت أنه لسبب ما لم تتم إضافة المستخدم الخاص بي إلى مجموعة أمان عامل الإرساء ، وبالتالي لم يسمح لي بإذن على مقبس unix الخاص بالرصيف وإعطائي _ERROR: تعذر الاتصال بـ Docker daemon على http + docker: // localunixsocket - هل هو قيد التشغيل_ .

أدت إضافة مجموعة عامل الإرساء إلى المستخدم الحالي ، ثم تسجيل الخروج والعودة مرة أخرى إلى إصلاح كل شيء بالنسبة لي:
sudo usermod -aG docker $USER

أيضًا ، لا تنس تشغيل newgrp docker للوصول إلى تلك المجموعة في صدفتك الحالية. المرجع https://stackoverflow.com/a/48569858/2040522

لقد مررت بنفس المشكلمة للتو. لقد وجدت أنه لسبب ما لم تتم إضافة المستخدم الخاص بي إلى مجموعة أمان عامل الإرساء ، وبالتالي لم يسمح لي بإذن على مقبس unix الخاص بالرصيف وإعطائي _ERROR: تعذر الاتصال بـ Docker daemon على http + docker: // localunixsocket - هل هو قيد التشغيل_ .

أدت إضافة مجموعة عامل الإرساء إلى المستخدم الحالي ، ثم تسجيل الخروج والعودة مرة أخرى إلى إصلاح كل شيء بالنسبة لي:
sudo usermod -aG docker $USER

هذا يعمل بشكل مثالي. عليك إعادة تسجيل الدخول لرؤية النتائج.

sudo usermod -aG docker $USER

هذا يعمل بشكل مثالي. عليك إعادة تسجيل الدخول لرؤية النتائج.

بدلاً من ذلك ، يجب أن يقوم newgrp docker بفعل ذلك بدون إعادة تسجيل الدخول.

sudo chmod 666 /var/run/docker.sock

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

أنت تقول بشكل صحيح ، لكن هذا مهم جدًا للمطورين ، أنا مجرد مطور وأصلح ذلك باستخدام هذا الأمر ،
شكر خاص لـ @ shqear93

هذا أمر مؤلم وأنا لا أشك في أنه تم إغلاق المشكلة منذ ثلاث سنوات دون استجابة ذات مغزى من Docker. لا ينبغي أن تكون مشكلة github هذه في مجموعة الميزات الخاصة بك. ما هي خطة تقويم هذا؟ لا تعرض هذا على المستخدمين الذين لا يفهمون كيفية عمل المجموعات والمستخدمين والجلسات ، أو أجزاء أخرى من البرامج التي تعمل بالطريقة التي يعملون بها. _ اخترت هذه الطريقة المعقدة لعمل الأشياء.

اضطررت إلى _ إعادة تشغيل جهاز الكمبيوتر الخاص بي بدلاً من تسجيل الخروج / تسجيل الدخول حتى يتم تفعيل sudo usermod -aG docker my_user . بعض الأدلة على حدوث ذلك للآخرين هنا: https://unix.stackexchange.com/questions/277240/usermod-ag-group-user-not-work.

لقد مررت بنفس المشكلمة للتو. لقد وجدت أنه لسبب ما لم تتم إضافة المستخدم الخاص بي إلى مجموعة أمان عامل الإرساء ، وبالتالي لم يسمح لي بإذن على مقبس unix الخاص بالرصيف وإعطائي _ERROR: تعذر الاتصال بـ Docker daemon على http + docker: // localunixsocket - هل هو قيد التشغيل_ .
أدت إضافة مجموعة عامل الإرساء إلى المستخدم الحالي ، ثم تسجيل الخروج والعودة مرة أخرى إلى إصلاح كل شيء بالنسبة لي:
sudo usermod -aG docker $USER

أيضًا ، لا تنس تشغيل newgrp docker للوصول إلى تلك المجموعة في صدفتك الحالية. المرجع https://stackoverflow.com/a/48569858/2040522

عملت بشكل مثالي بالنسبة لي. شكر!

على Ubuntu 16.04 ، نجح هذا بالنسبة لي:
sudo service docker start && docker-compose up -d

هذا عمل لي!

لقد مررت بنفس المشكلمة للتو. لقد وجدت أنه لسبب ما لم تتم إضافة المستخدم الخاص بي إلى مجموعة أمان عامل الإرساء ، وبالتالي لم يسمح لي بإذن على مقبس unix الخاص بالرصيف وإعطائي _ERROR: تعذر الاتصال بـ Docker daemon على http + docker: // localunixsocket - هل هو قيد التشغيل_ .
أدت إضافة مجموعة عامل الإرساء إلى المستخدم الحالي ، ثم تسجيل الخروج والعودة مرة أخرى إلى إصلاح كل شيء بالنسبة لي:
sudo usermod -aG docker $USER

أيضًا ، لا تنس تشغيل newgrp docker للوصول إلى تلك المجموعة في صدفتك الحالية. المرجع https://stackoverflow.com/a/48569858/2040522

هذا حل مشكلتي شكرا !!!

ليس لدي أي فكرة عن السبب ، ولكن ما تم إصلاحه بالنسبة لي هو إزالة السطر التالي من ملف Docker-compose .env file:

DOCKER_HOST=tcp://localhost:2375

حل بواسطة:

sudo chmod 666 /var/run/docker.sock

شكر. تم حلها في Ubuntu 20.0.4 LTS

لقد حاولت للتو اللعب بالأذونات وفعلت:

sudo docker-compose build

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

أي حل لأوبونتو 20.04؟

أي حل لأوبونتو 20.04؟

هل جربت الحل المنشور من قبل؟ (https://github.com/docker/compose/issues/4181#issuecomment-629748049)

باختصار (مع إضافة اقتراحات لاحقة):

sudo groupadd عامل إرساء
sudo usermod -aG docker $ USER
newgrp عامل ميناء

إذا كان "newgrp docker" غير كافٍ ، فقد يكون من الضروري إعادة التشغيل (هناك تعليقات متضاربة حول ذلك).

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات