Я хочу перейти на Docker, поэтому я только начал возиться с этим. Я установил Docker на установку VirtualBox Ubuntu 15.10 (Wily Werewolf) и, как это было предложено здесь, я попытался запустить базовый образ Dogin 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 следующим образом:
затем выйдите и снова войдите в систему или перезапустите систему. проверить по
docker version
Для получения дополнительной информации о том, как установить Docker-Engine, следуйте документации Docker.
источник
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Добавить пользователя в группу Docker
Добавьте группу докеров, если она еще не существует:
sudo groupadd docker
Добавьте подключенного пользователя "$ {USER}" в группу Docker:
sudo gpasswd -a ${USER} docker
Перезапустите демон Docker:
sudo service docker restart
Либо сделайте,
newgrp docker
либо выйдите из системы, чтобы активировать изменения в группах.источник
newgrp docker
это локально для оболочки, а не сеанс входа в систему. Это не совсем понятно из справочной страницы.Обычно следующая команда делает свое дело:
Это вместо
docker start
случаев, когда Docker, кажется, уже работает.Если это работает, то, как было предложено, и в другом ответе, и по этой проблеме GitHub , если вы еще не добавили себя в группу Docker, сделайте это, выполнив:
И вы, скорее всего, хорошо идти.
Как и для любого другого, кто сталкивался с этим, в некоторых ОС докер не запускается сразу после установки, и в результате
can't connect to daemon message
появляется то же самое . В этом случае вы можете сначала убедиться, что Docker действительно не работает, проверив состояние вашей службы Docker, выполнив:Если вывод выглядит примерно так:
docker stop/waiting
вместоdocker start/running, process 15378
этого это, очевидно, означает, что Docker не активен. В этом случае убедитесь, что вы начинаете это с:И, как и раньше, вам, скорее всего, будет хорошо поехать.
источник
Примечание для себя: я получаю ошибку из заголовка вопроса, когда забываю запустить
docker
команду сsudo
:sudo docker run ...
[Ubuntu 15.10]
источник
У меня была та же проблема, и у меня сработало следующее:
Проверка владения /var/run/docker.sock
Если вы не владелец, измените владельца с помощью команды
Тогда вы можете пойти дальше и попробовать выполнить команды docker без проблем: D
источник
root
но вdocker
группе. Правильный подход состоит в том, чтобы назначить вашего текущего пользователя вdocker
группу, согласно документацииsudo groupadd docker && sudo usermod -aG docker $USER
После установки всего и запуска сервиса, попробуйте закрыть свой терминал и снова открыть его, затем попробуйте вытащить свой образ
редактировать
У меня также была эта проблема снова, если решение выше не сработало, попробуйте это решение, которое является командой ниже
Соображения
Если приведенная выше команда работает, вы, вероятно, столкнулись с проблемами сетевого докера, в любом случае это решит ее, чтобы подтвердить это, см. Журнал с командой ниже
Если на выходе есть что-то подобное
У вас действительно есть проблемы с сетью, однако я пока не знаю, будет ли в следующий раз при перезапуске ( обновление , через 2 месяца без проблем) ваша ОС снова сталкиваться с этой проблемой, и если это ошибка или проблема установки
Моя версия докера
источник
После установки docker в Ubuntu я выполнил следующую команду:
Ты это пробовал?
источник
У меня такая же проблема. Два дня боролись за ее решение.
Это сработало только тогда, когда я сделал:
Согласно Руководству Docker , вам нужно добавить ключ Docker, если он еще не добавлен, используя:
$ sudo wget -qO- https://get.docker.com/gpg | sudo apt-key add -
Затем убедитесь, что вы предоставляете права доступа к докеру, используя:
$ sudo usermod -aG docker $USER
Надеюсь, это вам тоже поможет.
источник
sudo usermod -aG docker $USER
введите как root (
sudo su
) и попробуйте это:У меня та же проблема здесь, и команда docker работала только при запуске от имени root, а также с этим
DOCKER_HOST
пустымPS: также помните, что правильный и официальный способ установки на Ubuntu - это использовать их подходящие репозитории (даже 15.10), а не с этим " wget ".
источник
Для OSX :
После открытия docker и запуска компьютера «по умолчанию» через терминал быстрого запуска ( https://docs.docker.com/engine/installation/mac/ ) вы пробуете команды docker и получаете это сообщение «не удается подключиться к демону docker» , оказывается, что вам нужно установить некоторые переменные Env :
eval "$(docker-machine env default)"
Тогда попробуйте это,
docker run hello-world
чтобы видеть, все ли персиковое.источник
Для тех, кто уже пытался перезапустить ваш компьютер, сбросьте переменную окружения DOCKER_HOST, как сказано в документации docker env, а все остальные просто попробуйте пойти с
Только это помогло мне даже после перезагрузки машины.
источник
Предоставление доступа без полномочий root - из докера
Добавьте группу докеров, если она еще не существует.
Добавьте подключенного пользователя "$ {USER}" в группу Docker.
Измените имя пользователя, чтобы оно соответствовало вашему предпочтительному пользователю.
Возможно, вам придется выйти и снова войти, чтобы это вступило в силу.
Перезапустите демон Docker.
источник
Этот вопрос в настоящее время номер 3 в поиске Google. Проведя некоторые исследования по решению этой проблемы в моей системе Linux, я решил написать этот ответ. В оригинальном сообщении говорится, что проблема в Ubuntu, но я также столкнулся с проблемой при использовании Fedora. Имея это в виду, вот что я сделал, чтобы решить проблему.
На Fedora 22
Установка Docker:
После установки Docker:
Пользователь должен быть добавлен в группу Docker.
Должен быть запущен демон Docker
Вы можете настроить запуск демона при загрузке
Вы можете убедиться, что служба Docker запущена
И последняя последняя проверка
источник
dockerroot
. Кроме того, вы, вероятно, хотите установить его из репозитория (вместоcurl ... | sh
), чтобы его можно было обновить позже:dnf install docker
groupadd docker
а затем добавить его к вашему имени пользователяsudo usermod -aG docker your_username
Попробуйте использовать «sudo» с командой, которую вы выполняете.
источник
У меня та же проблема при запуске докера.
вы можете запускать команды как пользователь sudo :
источник
Для Ubuntu:
случилось со мной, когда я обновил докер.
Вам необходимо снять маску с сервиса и сокета, а затем перезапустить сервис.
Следующее сработало у меня:
Что происходит за кулисами
systemd также имеет возможность пометить юнит как полностью незапускаемый, автоматически или вручную, связав его с / dev / null. Это называется маскированием устройства и возможно с помощью команды mask.
Вы можете проверить список замаскированных услуг, используя:
Чтобы включить автоматический / ручной запуск сервиса, вам необходимо снять маску с помощью:
Теперь сервис будет включен, как показано ниже
источник
Так как docker связывается с сокетом unix, который принадлежит root при запуске, будет работать sudo вместе с командами docker.
источник
источник
Возможно, это кому-нибудь поможет, так как сообщение об ошибке крайне бесполезно, и я неоднократно проходил все стандартные этапы разрешений, но безрезультатно.
Docker иногда оставляет переменные среды-призрака на месте, которые блокируют доступ, несмотря на то, что ваша система в противном случае настроена правильно. Следующие команды оболочки могут сделать его снова доступным, если он был запущен в какой-то момент и он просто перестал взаимодействовать после перезагрузки:
У меня была ранее установленная докерская установка, и после перезагрузки моего ноутбука он просто отказывался работать. Было добавлено к группе пользователей докера, имели необходимые разрешения на сокет, и т.д., но все еще не могли бежать
docker login
,docker run ...
и т.д. Это установило ее для меня. К сожалению, я должен запускать это при каждой перезагрузке. Это упоминается в отношении нескольких проблем github также в качестве обходного пути, хотя кажется, что это постоянный барьер на пути корректной работы Docker (похоже, ошибка) (примечание: я работаю в Arch Linux, а не в OSX, но это было той же проблемой для меня).источник
Протестировано в Ubuntu 16.04
источник
Я столкнулся с той же ошибкой на экземпляре Amazon EC2. Проблема была исправлена после перезапуска экземпляра.
источник
Добавить текущего пользователя в группу Docker:
sudo usermod -aG docker $(whoami)
источник
--
) версии опций.Для Ubuntu 16.04
/lib/systemd/system/docker.service
Изменение внутреннего файла :с участием:
/etc/init.d/docker
Изменение внутреннего файла :с участием:
а затем перезагрузите компьютер.
источник