Я хочу сделать переход к Docker, так что я только начал с ним обходиться. Я установил Docker на установку VirtualBox Ubuntu 15.10 (Wily Werewolf) и предложил здесь Затем я попытался запустить базовый 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?
Я попытался выполнить команду, но безуспешно. Что я здесь делаю неправильно?
Вам нужно добавить своего текущего пользователя [предположим, что вы вошли в систему как ubuntu] в группу докеров, как следует
sudo usermod -aG docker $(whoami)
затем выйти из системы и снова войти в систему в систему или перезапустить систему.
тест docker version
для получения дополнительной информации о том, как установить docker-engine, следуйте документации докеров
Добавьте пользователя в группу докеров
Добавьте группу докеров, если она еще не существует:
sudo groupadd docker
Добавьте подключенного пользователя "$ {USER}" в группу докеров:
sudo gpasswd -a ${USER} docker
Перезапустите демон Docker:
sudo service docker restart
Либо выполните newgrp docker
, либо выполните вход/выход, чтобы активировать изменения
группы.
newgrp docker
является локальным для оболочки, а не для сеанса входа в систему. Это не совсем понятно из справочной страницы.
Обычно следующая команда выполняет трюк:
sudo service docker restart
Это вместо docker start
для случаев, когда Docker уже работает.
Если это работает тогда, как было предложено и в другом ответе, и в этой проблеме GitHub, если вы не добавили себя в группу докеров, выполните ее, выполнив:
sudo usermod -aG docker <your-username>
И вы, скорее всего, захотите пойти.
Как и в случае с кем-либо другим, в некоторых докере OS не запускается сразу после его установки, и в результате появляется тот же самый can't connect to daemon message
. В этом случае вы можете сначала проверить, что Docker действительно не работает, проверяя статус вашей докерной службы, выполнив:
sudo service docker status
Если результат выглядит примерно так: docker stop/waiting
вместо docker start/running, process 15378
, то это означает, что Docker неактивен. В этом случае убедитесь, что вы запустите его с помощью:
sudo service docker start
И, как и прежде, вам, скорее всего, будет хорошо идти.
note to self: я получаю сообщение об ошибке из названия вопроса, когда забываю запустить команду 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
Если бы та же проблема и что сработало для меня:
Проверка права собственности на /var/run/docker.sock
ls -l /var/run/docker.sock
Если вы не являетесь владельцем, измените право собственности на команду
sudo chown *your-username* /var/run/docker.sock
Затем вы можете продолжить выполнение команд docker без проблем: D
После установки docker на Ubuntu я выполнил следующую команду:
sudo service docker start
Вы пробовали?
У меня была та же проблема. Борьба в течение двух дней, чтобы решить эту проблему.
Он работал только тогда, когда я это делал:
Согласно Docker Tutorial, вам нужно добавить ключ Docker, если он еще не добавлен, используя:
$ sudo wget -qO- https://get.docker.com/gpg | sudo apt-key add -
Затем убедитесь, что вы предоставили привилегии докеров себе, используя:
$ sudo usermod -aG docker $USER
Надеюсь, это тоже поможет.
sudo usermod -aG docker $USER
Для OSX:
После открытия докера и запуска машины "по умолчанию" через терминал быстрого запуска (https://docs.docker.com/engine/installation/mac/) вы пытаетесь выполнить команды докеров и получить это" не может подключиться к сообщению docker daemon, , вам нужно установить некоторые переменные env:
eval "$(docker-machine env default)"
Затем попробуйте docker run hello-world
, чтобы увидеть, все ли персик.
введите как root (sudo su
) и попробуйте следующее:
unset DOCKER_HOST
docker run --name mynginx1 -P -d nginx
У меня такая же проблема, и команда docker работает только с правами root, а также с этим DOCKER_HOST
empty
PS: также будьте осторожны, что правильный и официальный способ установки на Ubuntu - использовать свои apt-репозитории (даже на 15.10), не с, что " wget" вещь.
Добавьте группу докеров, если она еще не существует.
$ sudo groupadd docker
Добавьте подключенного пользователя "$ {USER}" в группу докеров.
Измените имя пользователя в соответствии с вашим предпочтительным пользователем.
Вам может потребоваться выйти и снова войти в систему для это вступит в силу.
$ sudo gpasswd -a ${USER} docker
Перезапустите демон Docker.
$ sudo service docker restart
Для тех, кто уже попробовал перезагрузить ваш компьютер, отключив переменную окружения DOCKER_HOST, как указано в документации docker env, и все остальное просто попробуйте пойти с
sudo service docker restart
Только это помогло мне даже после перезагрузки машины.
Этот вопрос в настоящее время номер 3 в поиске Google. Проведя некоторые исследования по решению этой проблемы в моей системе Linux, я подумал, что напишу этот ответ. В исходном сообщении говорится, что проблема связана с Ubuntu, но я также столкнулся с проблемой использования Fedora. Имея это в виду, вот что я сделал, чтобы решить проблему.
В Fedora 22
Установка докера:
$> curl -fsSL https://get.docker.com/ | sh
После установки Docker:
Пользователь должен быть добавлен в группу докеров.
$> sudo usermod -aG docker
Необходимо запустить демон docker
$> sudo service docker start
Вы можете установить запуск демона при загрузке
$> sudo chkconfig docker on
Вы можете проверить, работает ли служба докеров
$> service docker status
И последняя окончательная проверка
$> docker run hello-world
dockerroot
. Кроме того, вы, вероятно, хотите установить его из репозитория (вместо curl ... | sh
), чтобы его можно было обновить позже: dnf install docker
groupadd docker
а затем добавить его к вашему имени пользователя sudo usermod -aG docker your_username
Для 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
Теперь служба будет включена, как показано ниже
У меня такая же проблема во время работы docker.
вы можете запускать команды как sudo:
sudo docker ***your command here***
Попробуйте использовать "sudo" с помощью команды, которую вы используете.
Поскольку докер связывается с unix-сокетом, который принадлежит root при запуске, использование sudo вместе с командами docker будет работать.
Для Ubuntu 16.04
Внутри файла /lib/systemd/system/docker.service
изменить:
ExecStart=/usr/bin/dockerd fd://
с:
ExecStart=/usr/bin/dockerd -H tcp://0.0.0.0:2375
Внутри файла /etc/init.d/docker
изменить:
DOCKER_OPTS=
с:
DOCKER_OPTS="-H tcp://0.0.0.0:2375"
а затем перезагрузите компьютер.
Добавить текущего пользователя в группу докеров:
sudo usermod -aG docker $(whoami)
--
) варианты опций.
Я столкнулся с такой же ошибкой в экземпляре Amazon EC2. Проблема была исправлена после перезапуска экземпляра.