Compose: [Mac] docker-compose не запускается из-за ошибки «Не удалось подключиться к демону Docker»

Созданный на 13 окт. 2015  ·  31Комментарии  ·  Источник: docker/compose

Я очень смущен тем, как docker-compose должен работать на моем Mac. Вот шаги, которые я предпринял:

1) Установлен Docker Toolbox (Docker версии 1.8.2)
2) Пытался запустить docker-compose up но получил ошибку Illegal instruction: 4 согласно # 1885
3) Чтобы решить эту проблему, я установил docker-compose с помощью pip через sudo pip install -U docker-compose
4) Теперь, когда я запускаю docker-compose up я получаю Couldn't connect to Docker daemon - you might need to run boot2docker up .

Это очень сбивает с толку, потому что во всей документации сказано, что boot2docker устарел. И попытка установить boot2docker у меня тоже не работает.

Я не знаю, что еще попробовать. В настоящее время установлен docker-compose v1.4.2.

kinquestion

Самый полезный комментарий

Недавно мы исправили это сообщение об ошибке (исправление будет в следующем выпуске).

В нем должно быть написано «вам может потребоваться запустить docker-machine start default ».

Если вы по-прежнему не можете подключиться, а docker-machine работает, вы можете настроить compose для использования машины с eval "$(docker-machine env default)"

Все 31 Комментарий

Недавно мы исправили это сообщение об ошибке (исправление будет в следующем выпуске).

В нем должно быть написано «вам может потребоваться запустить docker-machine start default ».

Если вы по-прежнему не можете подключиться, а docker-machine работает, вы можете настроить compose для использования машины с eval "$(docker-machine env default)"

Хорошо спасибо. Похоже, моя проблема связана с виртуальной машиной Docker. Это дает мне всевозможные ошибки 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 , возможно ли это?

Да. Compose будет использовать любой движок, установленный в переменной окружения DOCKER_HOST (это то, что устанавливается eval $(docker-machine env ....) .

ах, спасибо, я не знал о DOCKER_HOST !!
Почему бы не добавить параметр командной строки, который бы переопределил это значение ??

Я просто хотел бы добавить кое-что для всех, кто посетит это в будущем ... У меня эта проблема возникает каждый раз, когда я открываю новую оболочку, поэтому я добавил eval $(docker-machine env default) в свой ~/.bash_profile . Работает удовольствие. Конечно, кто-то здесь может сказать мне, что это очень плохая идея (TM): smile:

Да, это работает. Но почему внезапно eval $ (docker-machine env default). Раньше он работал нормально

Да, я тоже не уверен. Раньше у меня тоже работал.

eval $(docker-machine env default) у меня работает! благодаря :)

Eval "$ (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:

@shankiesan @lewistaylor вау, не могу понять, что это не я придумал. еще лучшее решение: +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

@lewistaylor @shankiesan @michahell Как вы экспортируете переменные из docker-machine env default в .bash_profile? Я не очень хорошо разбираюсь в bash, поэтому был бы признателен за помощь в реализации этого исправления.

Отбросьте docker-machine / dinghy / boot2docker и используйте docker для 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 default в
.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 минут 0.0.0.0:80->80/tcp wordpress_app
a790fdc3ca70 mysql "docker-entrypoint.sh" 14 минут назад Up 14 минут 0.0.0.0:3360->3306/tcp wordpress_db
$ wordpress-compose docker-compose up
ОШИБКА: не удалось подключиться к демону Docker - вам может потребоваться запустить docker-machine start default

$ wordpress-compose docker-compose --version
docker-compose версия 1.8.0-rc1, сборка 9bf6bc6

$ wordpress-compose docker --version
Докер версии 1.12.0-rc2, сборка 906eacd, экспериментальная

Вот моя информация, все работает нормально, если я использую docker run .......mysql..... и docker run ....link....wordpress , и я могу получить доступ к блогу в браузере. Когда я хочу попробовать docker-compose , это не сработает. Я удалил машину по умолчанию, теперь используется wordpress.

Может помочь мне узнать, что не так?

у меня такая же проблема
но я не использую docker-machine только для docker-compose
Есть идеи ??

eval "$(docker-machine env default)" решает проблему

Была такая же проблема с одной конкретной службой в docker-compose.

Была проблема с разрешениями ... файлы для загрузки в докер не принадлежали текущему пользователю.

То же, что @Rots здесь = /

вставьте команду:
eval "$ (env docker-machine по умолчанию)"
на вашем терминале Mac

"Error checking TLS connection: machine does not exist"
Теперь эта проблема возникает всякий раз, когда я пытаюсь использовать docker-machine env default, также пробовал загрузиться из bash_profile, нужна помощь!

Ошибка SSL: EOF произошел с нарушением протокола (_ssl.c: 777)

Была ли эта страница полезной?
0 / 5 - 0 рейтинги