Compose: [Mac] لن يعمل docker-compose بسبب الخطأ "تعذر الاتصال بـ Docker daemon"

تم إنشاؤها على ١٣ أكتوبر ٢٠١٥  ·  31تعليقات  ·  مصدر: docker/compose

أنا في حيرة من أمري بشأن الطريقة التي من المفترض أن يعمل بها عامل الإرساء على جهاز Mac. فيما يلي الخطوات التي اتخذتها:

1) تثبيت Docker Toolbox (إصدار Docker 1.8.2)
2) حاولت تشغيل docker-compose up ولكن حصلت على خطأ Illegal instruction: 4 حسب # 1885
3) لإصلاح المشكلة ، قمت بتثبيت docker-compose بنقطة عبر sudo pip install -U docker-compose
4) الآن عند تشغيل docker-compose up أحصل على Couldn't connect to Docker daemon - you might need to run boot2docker حتى .

وهو أمر محير للغاية لأن جميع الوثائق تقول أن boot2docker تم إهماله. ومحاولة تثبيت boot2docker لا تعمل معي أيضًا.

لست متأكدًا مما يجب تجربته أيضًا. تم تثبيت docker-compose v1.4.2 حاليًا.

kinquestion

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

لقد أصلحنا مؤخرًا رسالة الخطأ هذه (سيكون الإصلاح في الإصدار التالي).

يجب أن تقول "قد تحتاج إلى تشغيل docker-machine start default ".

إذا كنت لا تزال غير قادر على الاتصال ، وكان docker-machine قيد التشغيل ، فيمكنك تكوين إنشاء لاستخدام الجهاز مع eval "$(docker-machine env default)"

ال 31 كومينتر

لقد أصلحنا مؤخرًا رسالة الخطأ هذه (سيكون الإصلاح في الإصدار التالي).

يجب أن تقول "قد تحتاج إلى تشغيل docker-machine start default ".

إذا كنت لا تزال غير قادر على الاتصال ، وكان docker-machine قيد التشغيل ، فيمكنك تكوين إنشاء لاستخدام الجهاز مع eval "$(docker-machine env default)"

حسنا، شكرا. يبدو أن مشكلتي تتعلق بـ Docker VM. إنه يعطيني جميع أنواع أخطاء TLS حتى عند تشغيل أوامر عامل الإرساء العادية مثل docker images .

Get http:///var/run/docker.sock/v1.20/images/json: dial unix /var/run/docker.sock: no such file or directory.
* Are you trying to connect to a TLS-enabled daemon without TLS?
* Is your docker daemon up and running?

سآخذ الأمر مع فريق عامل الميناء.

تحديث

لأي شخص لديه هذه المشكلة أيضًا. كان الحل بالنسبة لي هو:

  • قم بتشغيل التطبيق Docker Quickstart Terminal
  • تشغيل docker-machine restart default
  • قم بتشغيل eval $(docker-machine env default)

من الواضح أنك بحاجة إلى تشغيل eval $(docker-machine env default) كل مرة تقوم فيها بتشغيل محطة البدء السريع.

لقد تلقيت نفس الخطأ ، لكنني لا أريد استخدام الجهاز الافتراضي ولكن بدلاً من ذلك ، تم إنشاء جهاز آخر باستخدام برنامج التشغيل amazonec2 ، هل هذا ممكن؟

نعم. سيستخدم الإنشاء أي محرك تم تعيينه في متغير البيئة DOCKER_HOST (وهو ما يتم تعيينه بواسطة eval $(docker-machine env ....) .

آه شكرا ، لم أكن أعرف عن DOCKER_HOST !!
لماذا لا تضيف معلمة سطر أوامر تتجاوز هذه القيمة ؟؟

أود فقط إضافة شيء لأي شخص يزور هذا في المستقبل ... أستمر في مواجهة هذه المشكلة في كل مرة أقوم فيها بفتح غلاف جديد ، لذلك أضفت eval $(docker-machine env default) إلى ~/.bash_profile . يعمل علاجًا. بالطبع ، قد يخبرني أحدهم هنا أن هذه فكرة سيئة جدًا: ابتسم:

نعم إنه يعمل. لكن لماذا EVAL $ (Docker-machine env default) فجأة. انها تعمل بشكل جيد قبل

نعم ، لست متأكدًا أيضًا. كان يعمل لي في وقت سابق كذلك.

eval $(docker-machine env default) يعمل بالنسبة لي! شكر :)

نجح التقييم "$ (docker-machine env default)" ، شكرًا!

ما زلت غير راضٍ تمامًا عن الحل المتمثل في إضافة eval $(docker-machine env default) إلى ~/.bash_profile (على الرغم من أنني اقترحته) لأنه يضيف حوالي 2 ثانية من التأخير عند فتح نافذة طرفية جديدة. أي شخص لديه أي أفكار أفضل؟

shankiesan alias eval_evil_docker="eval $(docker-machine env default)"

ههه نعم أعتقد أن هذا من شأنه أن يعمل michahell . لا يزال يتعين عليك القيام بشيء ما قبل كل مرة تستخدم فيها عامل الإرساء. ليست مثالية ولكنها ليست سيئة!

shankiesan الخيار الآخر الوحيد الذي يمكنني رؤيته هو تصدير المتغيرات المنتجة من docker-machine env default في bash_profile. نعم ، يمكن أن يتغير عنوان IP نظريًا ، ولكن في الواقع ، من غير المرجح أن يحدث هذا كثيرًا من التأخير في فتح قشرة جديدة على أساس يومي ، وإذا حدث ذلك ، فيمكنك دائمًا تحديث :-)

هذه فكرة جيدة lewistaylor . لقد جربت ذلك من قبل لم يفلح ، ولكن هذا الوقت قد حان ، لذلك لا بد أنه كان خطأ المشغل. رائع ، هذا اقتراح رائع: +1:

shankiesanlewistaylor واو ، لا أستطيع أن أفهم أنني لم أتوصل إلى ذلك. حل أفضل: +1:

لا تزال هذه المشكلة قائمة ، الحل الوحيد هو استخدام

$ eval $(docker-machine env the-vm-name) // which doesnt give any output & without it we get the error
$ docker-compose up

أحيانًا أواجه نفس المشكلة ولكنها لا تظهر إلا عندما أغلق جهاز macbook الخاص بي. إذا قمت بإعادة تشغيل النظام ، فقد يبدأ بشكل جيد ، وربما لا. إذا لم أقم بإعادة التشغيل مرة أخرى وعادة ما تعمل. تخميني هو أنه من المحتمل أن تكون المشكلة في IP / المنافذ ، فقط خمن ، لأنني إذا قمت بإعادة تشغيل الكمبيوتر المحمول باستخدام برامج غير مغلقة (مثل PHPStorm) ، فلن يعمل عادةً. إذا أغلقت جميع البرامج قيد التشغيل وأعدت تشغيلها ، فهذا يعمل.

+1

lewistaylorshankiesanmichahell كيف تقوم بتصدير المتغيرات من docker-machine env default في .bash_profile؟ لست جيدًا مع bash ، لذا سأكون ممتنًا للمساعدة في تنفيذ هذا الإصلاح.

قم بإسقاط docker-machine / dinghy / boot2docker واستخدم docker for mac ، تم ضبطه على
أصبح وقت التشغيل الرسمي
في 3 حزيران (يونيو) 2016 ، 08:03 ، كتب "nwshane" [email protected] :

lewistaylor https://github.com/lewistaylor shankiesan
https://github.com/shankiesan michahell https://github.com/michahell
كيف يمكنك تصدير المتغيرات من الافتراضي لجهاز docker-machine env
.bash_profile؟ أنا لست جيدًا مع bash ، لذا سأكون ممتنًا للمساعدة
تنفيذ هذا الإصلاح.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/docker/compose/issues/2180#issuecomment -223505966 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe/AAeWNmFAR8k9Aszni-FDcGrkfK4dVEAeks5qH9GugaJpZM4GN-hv
.

nwshane فقط قم بتحرير .bash_profile في محرر النصوص المفضل لديك. على سبيل المثال:

nano ~/.bash_profile وأضف الأسطر التي حصلت عليها من docker-machine env default . ثم يتعين عليك source هذا الملف - يمكنك القيام بذلك إما عن طريق فتح وإغلاق جلسة المحطة ، أو أفضل ، source ~/.bash_profile

يجب أن تفعل ذلك.

shankiesan عظيم ، شكرًا! هذا ما فعل الحيلة. كنت أربك نفسي من خلال التفكير في أنه كان علي تشغيل docker-machine env default والحصول على المتغيرات من هناك - ولكن هذا بالطبع ما يفعله eval "$(docker-machine env default)" .

$ wordpress-compose eval $(docker-machine env wordpress)
$ wordpress-compose docker ps
أسماء منافذ الحالة التي تم إنشاؤها بأمر صورة معرف الحاويات
443c7386f4ef wordpress "/entrypoint.sh apach" منذ 7 دقائق Up 7 minutes 0.0.0.0:80->80/tcp wordpress_app
a790fdc3ca70 mysql "docker-entrypoint.sh" منذ 14 دقيقة Up 14 minutes 0.0.0.0:3360->3306/tcp wordpress_db
$ wordpress-compose docker-compose up
خطأ: تعذر الاتصال بـ Docker daemon - قد تحتاج إلى تشغيل docker-machine start default .`

$ wordpress-compose docker-compose --version
إصدار docker-compose 1.8.0-rc1 ، بناء 9bf6bc6

$ wordpress-compose docker --version
إصدار Docker 1.12.0-rc2 ، بناء 906eacd ، تجريبي

ها هي معلوماتي ، كل شيء يعمل بشكل جيد إذا استخدمت docker run .......mysql..... و docker run ....link....wordpress ، ويمكنني الوصول إلى المدونة في المتصفح. عندما أرغب في تجربة docker-compose ، فهذا لا يعمل. لقد قمت بحذف الآلة الافتراضية ، ووردبرس قيد الاستخدام الآن.

هل يمكن أن تساعدني في معرفة ما هو الخطأ؟

أواجه نفس المشكلة
لكني لا أستخدم عامل عامل بناء عامل فقط
اي فكرة ؟؟

eval "$(docker-machine env default)" يحل المشكلة

واجهت نفس المشكلة مع خدمة واحدة محددة في docker-compose.

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

مثل Rots هنا = /

الصق الأمر:
EVAL "$ (docker-machine env default)"
على محطة ماك الخاصة بك

"Error checking TLS connection: machine does not exist"
الآن تحصل على هذه المشكلة كلما حاولت استخدام docker-machine env الافتراضي ، حاولت التحميل من bash_profile أيضًا ، أحتاج إلى مساعدة!

خطأ SSL: حدث EOF في انتهاك للبروتوكول (_ssl.c: 777)

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