Подтвердить что ты не робот

Docker-Compose не может подключиться к Docker Daemon

Я получаю сообщение об ошибке, говорящее, что я не могу подключиться к демону docker. Я изучил ответы других людей, у которых были подобные проблемы, но это не помогло. Я запускаю версию Ubuntu 15.10. Я постараюсь предоставить всю имеющуюся у меня информацию.

[email protected]# docker-compose -f docker-compose-deps.yml up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?

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

Докерная версия

[email protected]# sudo docker     version
Client:
Version:      1.9.1
API version:  1.21
Go version:   go1.4.2
Git commit:   a34a1d5
Built:        Fri Nov 20 13:20:08 UTC 2015
OS/Arch:      linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Версия для Docker-Compose

[email protected]# docker-compose --version
docker-compose version 1.5.2, build 7240ff3

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

[email protected]# sudo service docker stop
stop: Unknown instance: 
[email protected]# sudo service   docker start
docker start/running, process 5375

Если я запустил ps aux | grep docker

[email protected]# ps aux | grep docker
root      4233  0.0  0.0  13692  2204 pts/15   S+   10:27   0:00 grep --color=auto docker

Любая помощь будет принята с благодарностью. Сообщите мне, если вам может понадобиться больше информации.

4b9b3361

Ответ 1

Я нашел это и, похоже, решил проблему.

GitHub Fix Docker Daemon Crash

Я изменил содержимое моего файла docker-compose-deps.yml, как показано в ссылке. Затем я побежал docker-compose -f docker-compose-deps.yml up -d. Затем я изменил его, и он по какой-то причине сработал. Мне не нужно было продолжать шаги в ссылке, которую я предоставил, но первые два шага исправили эту проблему для меня.

Ответ 2

У меня была такая же ошибка, после 15 минут отладки. Оказывается, все, что ему нужно, это sudo:) Ознакомьтесь с [Create a Docker group] здесь https://docs.docker.com/engine/installation/linux/ubuntulinux/, чтобы избавиться от префикса sudo.

Ответ 3

Похоже, что ваша проблема была вызвана старой ошибкой Docker, когда файл сокета не был воссоздан после сбоя Docker. Если это проблема, то переименование файла сокета должно позволить его воссоздать:

$ sudo service docker stop
$ sudo mv /var/lib/docker /var/lib/docker.bak
$ sudo service docker start

Так как эта ошибка исправлена, большинство людей получать ошибку Couldn't connect to Docker daemon, вероятно, получить его, потому что они не находятся в docker группе и не имеют прав на чтение этого файла. Запуск с помощью sudo docker... это исправит, но это не лучшее решение.

Docker может быть запущен как пользователь без полномочий root (без sudo), у которого есть соответствующие разрешения группы. Документы о постинсталляции Linux содержат подробности. Краткая версия:

$ sudo groupadd docker
$ sudo usermod -aG docker $USER
# Log out and log back in again to apply the groups
$ groups  # docker should be in the list of groups for your user
$ docker run hello-world  # Works without sudo

Это позволяет пользователям в группе docker запускать команды docker и docker-compose без sudo. Сам Docker запускает рут, позволяя некоторые атаки, поэтому вам все равно нужно быть осторожным с тем, какие контейнеры вы запускаете. См. Документацию по безопасности Docker для более подробной информации.

Ответ 4

У меня была эта проблема, и я не хотел все испортить, используя sudo. При расследовании я попытался получить некоторую информацию:

docker info

Удивительно, но у меня была следующая ошибка:

Получено отказ в разрешении при попытке подключения к сокету демона Docker в unix:///var/run/docker.sock: Получить http:///var/run/docker.sock/v1.38/info: набрать unix/var/run/docker.sock: подключиться: разрешение запрещено

По некоторым причинам у меня не было достаточных привилегий, следующая команда решила мою проблему:

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

И вуаля !

Ответ 5

У меня была такая же проблема. После заметок и анализа некоторых результатов отладки, наконец, я решил, что может быть той же ошибкой. Сначала запустите службу,

service docker start

Не забудьте включить пользователя в группу докеров.

Ответ 6

Я получил эту ошибку, когда в каталоге Dockerfile были файлы, недоступные текущему пользователю. Таким образом, docker не мог выгрузить полный контекст для демона и привел сообщение "Не удалось подключиться к демону Docker в сообщении http + docker://localunixsocket".

Ответ 7

Из вывода "ps aux | grep docker", похоже, что демон docker не запущен. Попробуйте использовать методы ниже, чтобы узнать, что не так, и почему докер не запускается

  • Проверьте журналы докеров

$sudo tail -f/var/log/upstart/docker.log

  1. Попробуйте запустить докер в режиме отладки

$sudo docker -d -D

Ответ 8

Вы должны добавить своего пользователя в группу "docker" с чем-то вроде:

sudo usermod -aG docker your-user

Ответ 9

В моем случае ваша служба докеров может быть остановлена ​​

Команда для запуска службы докеров:

$ sudo systemctl start docker

Команда, чтобы проверить, запускается ли она:

$ sudo docker run hello-world

Ответ 10

Другая причина, по которой эта ошибка может docker-compose.yml: для меня это было неправильное определение пути к изображению в docker-compose.yml:

  service:
    image: ${CONTAINER_REGISTRY_BASE}/my-service
   ...

Сначала выглядишь хорошо, но у меня есть CONTAINER_REGISTRY_BASE=eu.gcr.io/my-project/. Видимо, // в пути изображения вызвало эту ошибку.

docker-compose: v.1.21.2
docker: 18.03.1-ce

Ответ 11

Я использовал Ubuntu 16.04 и обнаружил эту проблему, когда использовал docker-compose. Я исправил это, выполнив эту команду.

$ sudo systemctl start docker
$ sudo docker-compose build

Ответ 12

запуск этого как sudo решил проблему для меня

Ответ 13

В моем случае я получаю ту же ошибку, когда пытаюсь docker-compose build с помощью docker-compose build и мое решение было просто добавить sudo

sudo docker-compose build

Ответ 14

Есть ли небольшая вероятность, что вы удалили машину по умолчанию? Но сначала проверьте, все ли файлы есть (OSX, аналогично в других системах)

brew install docker docker-compose docker-machine xhyve docker-machine-driver-xhyve
brew link docker docker-compose docker-machine xhyve docker-machine-driver-xhyve

sudo chown root:wheel /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve
sudo chmod u+s /usr/local/opt/docker-machine-driver-xhyve/bin/docker-machine-driver-xhyve

Кроме того, установите приложение Docker, так как гораздо проще поддерживать контейнеры:

brew cask reinstall docker

Запустите приложение Docker из поиска (подождите, пока сервис полностью не запустится)

Затем проверьте установку с помощью:

docker-machine ls

если в списке нет машин, создайте их и запустите:

docker-machine create default
docker-machine start default

После этого команды build, compose и все остальные команды должны работать правильно.

Ответ 15

Для меня исправлением было установить более новую версию (1.24) docker-compose, используя эту статью.

Предыдущая версия (1.17) была установлена из репозитория ubuntu по умолчанию, но после установки более новой версии мне удалось запустить контейнер. Надеюсь, это кому-нибудь поможет.