linux установка cannot - Команда Docker не может подключиться к демону Docker





11 Answers

Добавьте пользователя в группу докеров

  • Добавьте группу докеров, если она еще не существует:

    sudo groupadd docker

  • Добавьте подключенного пользователя «$ {USER}» в группу докеров:

    sudo gpasswd -a ${USER} docker

  • Перезапустите демон Docker:

    sudo service docker restart

  • Либо newgrp docker либо войдите в систему, чтобы активировать изменения в группах.

connect to the

Я хочу сделать переход к Docker, так что я только начал обходиться с ним. Я установил Docker на установку VirtualBox Ubuntu 15.10 (Wily Werewolf), и, как было предложено здесь, я попытался запустить базовое изображение Docker nginx :

$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Поэтому я проверил, работает ли Docker:

$ sudo service docker status
● docker.service - Docker Application Container Engine
   Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
   Active: active (running) since vr 2015-11-06 08:41:48 CET; 15min ago
     Docs: https://docs.docker.com
 Main PID: 7542 (docker)
   CGroup: /system.slice/docker.service
           └─7542 /usr/bin/docker daemon -H fd://

nov 06 08:41:47 kramer65-VirtualBox systemd[1]: Starting Docker Application Container Engine...
nov 06 08:41:47 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:47.900410966+01:00" level=info msg="API ...ock"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.033514149+01:00" level=info msg="Fire...lse"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.141594321+01:00" level=info msg="Defa...ess"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.416294436+01:00" level=warning msg="Y...it."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.565507576+01:00" level=info msg="Load...rt."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567907022+01:00" level=info msg="Load...ne."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567945214+01:00" level=info msg="Daem...ion"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567969891+01:00" level=info msg="Dock....9.0
nov 06 08:41:48 kramer65-VirtualBox systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.

Это говорит о том, что демон Docker на самом деле уже запущен, но, конечно, я только что начал демон Docker вручную:

$ sudo docker daemon
INFO[0000] API listen on /var/run/docker.sock           
INFO[0000] [graphdriver] using prior storage driver "aufs" 
INFO[0000] Firewalld running: false                     
INFO[0000] Default bridge (docker0) is assigned with an IP address XXX.XX.X.X/XX. Daemon option --bip can be used to set a preferred IP address 
WARN[0000] Your kernel does not support swap memory limit. 
INFO[0000] Loading containers: start.                   

INFO[0000] Loading containers: done.                    
INFO[0000] Daemon has completed initialization          
INFO[0000] Docker daemon                                 commit=76d6bc9 execdriver=native-0.2 graphdriver=aufs version=1.9.0

Затем я попытался запустить изображение снова, но с тем же результатом:

$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

Я попытался выполнить команду, но безуспешно. Что я здесь делаю неправильно?




примечание к себе: я получаю сообщение об ошибке из названия вопроса, когда забываю запустить команду docker с sudo :

sudo docker run ...

[Ubuntu 15.10]




После установки всего и запустите службу, попробуйте закрыть терминал и снова откройте его, затем попробуйте потянуть изображение

редактировать

У меня также была эта проблема снова, если решение выше не сработает, попробуйте это решение, которое является приведенной ниже командой

sudo mv /var/lib/docker/network/files/ /tmp/dn-bak

Соображения

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

tail -5f /var/log/upstart/docker.log

Если вывод имеет что-то подобное

FATA[0000] Error starting daemon: Error initializing network controller: could not delete the default bridge network: network bridge has active endpoints 
/var/run/docker.sock is up

У вас действительно проблемы с сетью, однако я еще не знаю, если в следующий раз, когда вы перезапустите ( обновление , 2 месяца больше не проблема), ваша ОС снова получит эту проблему, и если это проблема с ошибкой или установкой

Моя версия докера

Client:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:12:04 UTC 2015
 OS/Arch:      linux/amd64

Server:
 Version:      1.9.1
 API version:  1.21
 Go version:   go1.4.2
 Git commit:   a34a1d5
 Built:        Fri Nov 20 13:12:04 UTC 2015
 OS/Arch:      linux/amd64



У меня такая же проблема. Борьба в течение двух дней, чтобы решить эту проблему.

Он работал только тогда, когда я это делал:

  1. Согласно Docker's Tutorial , вам нужно добавить ключ Docker, если он еще не добавлен, используя:

    $ sudo wget -qO- https://get.docker.com/gpg | sudo apt-key add -

  2. Затем убедитесь, что вы предоставили привилегии докеров себе, используя:

    $ sudo usermod -aG docker $USER

Надеюсь, это тоже поможет.




Для OSX :

После открытия докера и запуска машины «по умолчанию» с помощью терминала быстрого запуска ( https://docs.docker.com/engine/installation/mac/ ) вы пытаетесь выполнить команды докеров и получите сообщение «не удается подключиться к док-станции» , оказывается, вам нужно установить некоторые переменные env :

eval "$(docker-machine env default)"

Затем попробуйте с помощью docker run hello-world чтобы увидеть, все ли персик.




Для тех, кто уже попробовал перезагрузить ваш компьютер, отключив переменную окружения DOCKER_HOST, как указано в документации docker env, и все остальное просто попытайтесь перейти с

sudo service docker restart

Только это помогло мне даже после перезагрузки машины.




Попробуйте использовать «sudo» с помощью команды, которую вы используете.




Для Ubuntu:
Случилось со мной, когда я обновлял докер.
Вам нужно разобрать службу и сокет, а затем перезапустить службу.

После меня работали:

systemctl unmask docker.service
systemctl unmask docker.socket
systemctl start docker.service

Что случилось за кулисами
systemd также имеет возможность пометить блок как полностью нестандартный, автоматически или вручную, связав его с / dev / null. Это называется маскировкой устройства и возможно с помощью команды mask.

sudo systemctl mask docker.service

Вы можете проверить список скрытых служб, используя:

sudo systemctl list-unit-files

Чтобы включить автоматический / ручной запуск службы, вам необходимо разобрать его, используя:

sudo sytemctl unmask docker.service

Теперь услуга будет включена, как показано ниже.




  1. У меня тоже была такая же проблема. Проблема была в сокетах, выделенных для docker-daemon и docker-client.
  2. Во-первых, разрешение не было установлено для docker-client на docker.sock. Вы можете установить его, используя «sudo usermod -aG docker $ USER»
  3. Затем проверьте файл bash, в котором работает docker-client. Для меня это было на 0.0.0.0:2375, тогда как docker-daemon запускался в unix-сокете (он был установлен в файле конфигурации dockerd).
  4. Просто прокомментируйте bash-line, и все будет хорошо.
  5. Но если вы хотите, чтобы он работал на TCP-порт вместо unix-сокета, измените конфигурационный файл dockerd и установите его на 0.0.0.0.2375 и сохраните строку в bash как есть, если она присутствует или установлена ​​в 0.0.0.0: 2375.



Добавить текущего пользователя в группу докеров:

sudo usermod -aG docker $(whoami)




Возможно, это поможет кому-то, поскольку сообщение об ошибке крайне бесполезно, и я прошел через все стандартные шаги разрешения много раз безрезультатно.

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

unset DOCKER_HOST
unset DOCKER_TLS_VERIFY
unset DOCKER_TLS_PATH
docker ps

У меня была ранее работающая док-станция, и после перезагрузки моего ноутбука она просто отказалась работать. Был правильно добавлен в группу пользователей докеров, имел правильные разрешения на сокет и т. Д., Но все равно не мог запускать docker login docker run ... и т. Д. Это исправило это для меня. К сожалению, я должен запускать это при каждой перезагрузке. Это упоминается в нескольких проблемах github также как обходной путь, хотя кажется, что это ошибка, которая является постоянным препятствием для исправления работы Docker (примечание: я на Arch Linux, а не на OSX, но это была та же проблема для мне).




Related