Невозможно подключиться к демону Docker в unix: /var/run/docker.sock. Работает ли демон Docker?

175

Я применил все доступные в Интернете решения, но все равно не могу запустить Docker.

Я хочу использовать Scrapy Splash на моем сервере.

Вот historyкоманды, которые я выполнял.

docker run -p 8050:8050 scrapinghub/splash
sudo docker run -p 8050:8050 scrapinghub/splash
sudo usermod -aG docker $(whoami)
sudo docker run -p 8050:8050 scrapinghub/splash
newgrp docker
sudo docker run -p 8050:8050 scrapinghub/splash
reboot
sudo docker run -p 8050:8050 scrapinghub/splash
docker run -p 8050:8050 scrapinghub/splash

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

увидеть вывод ps -aux | grep docker

root@mani:/var/www/html# ps aux | grep docker
root      8524  0.0  0.8 127904 13964 ?        Ssl  17:21   0:00 /usr/bin/dockerd --raw-logs
root      8534  0.0  0.3  90588  5012 ?        Ssl  17:21   0:00 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m --state-dir /var/run/docker/libcontainerd/containerd --shim docker-containerd-shim --runtime docker-runc
root      8543  0.0  0.0   8812   764 pts/1    S+   17:21   0:00 grep --color=auto docker
root     16356  0.0  0.0  17200   964 pts/1    S    17:14   0:00 newgrp docker
root     20080  0.0  0.0  17200   964 pts/1    S    17:06   0:00 newgrp docker
root     30221  0.0  0.0  17200   964 pts/1    S    17:09   0:00 newgrp docker
Умайр Аюб
источник
Если вы запускаете ps aux | grep docker, вы видите, что процесс демона запущен?
Rome_Leader
Возможный дубликат: stackoverflow.com/questions/21871479/…
BMitch
@Rome_Leader смотрите вывод в моем вопросе ...
Умайр Аюб
3
попробуйте это: перезапуск докера службы sudo
Haythem ROUIS
2
Вы можете увидеть статус своего докера Деймона, используя это: sudo service docker statusпроверьте, активен ли он
Haythem ROUIS

Ответы:

163

Вы можете попробовать это:

systemctl start docker

Это работало нормально для меня.

PS: после, если есть команды, которые вы не можете обойтись без sudo, попробуйте это:

gpasswd -a $USER docker
H.Gmz
источник
10
Выполнив первую команду, я получил ошибку: Failed to start docker.service: Unit docker.service is masked.Итак, мне пришлось выполнить следующее: systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service
Крис Фан
51

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

Запустите snap logs dockerи найдите следующее:

Error starting daemon: pid file found, ensure docker is not running or delete /var/snap/docker/179/run/docker.pid

Удаление этого файла и перезапуск докера работали для меня.

rm /var/snap/docker/<your-version-number>/run/docker.pid
snap stop docker
snap start docker

Убедитесь в том , чтобы заменить <your-version-number>‍с соответствующим номером версии.

Никлас
источник
Как я могу предотвратить это? Каждый раз, когда я включаю свой компьютер, я должен удалить docker.pid!
Хамидреза
48

Просто беги

sudo dockerd

dockerd - это сервис-демон для докер-контейнеров, поскольку он не работает в фоновом режиме, и мы не можем предпринимать какие-либо действия, связанные с сервисом, который необходимо перезапустить.

Яш Покар
источник
10
Это единственная команда, которая работает для меня. Я думаю, что это смешно, что приходится прыгать через столько обручей, чтобы запустить и запустить Docker.
Гомункул Ретулли
3
Это дает мне ошибкуError starting daemon: Devices cgroup isn't mounted
Vineet 'DEVIN' Dev
@fepegar Возможно, вы не правильно установили докер
Яш Покар
@YashPokar действительно, я закончил переустановку, и теперь все работает как положено. Спасибо.
fepegar
Единственная команда, которая работает для меня внутри контейнера докера, чтобы запустить контейнер докера. Нужно это для codebuild, чтобы создать свою собственную среду во время сборки. :-)
Мы Борг
21

Сначала попробуйте выполнить команду sudo , поскольку текущий пользователь может не иметь прав доступа для связи с демоном docker, например /var/run/docker.sock.

Если он все еще не работает, то после установки просто остановите демон docker как,

$ sudo service docker stop

И, запустите следующую команду, чтобы запустить демон в фоновом режиме,

$ sudo nohup docker daemon -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock

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

$ sudo usermod -aG docker $USER

Кроме того, этот шаг упоминается в официальной документации по шагам постустановки докера для Linux ( https://docs.docker.com/engine/installation/linux/linux-postinstall/ ).

Пользователи Ubuntu 16.04 могут выполнить следующие действия:

Внутренний файл /lib/systemd/system/docker.service измените: ExecStart = / usr / bin / dockerd fd: // with 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 "

а затем перезагрузите машину. И начните играть с докером.

mohan08p
источник
1
Бег sudo nohup docker daemon -H http://tcp://0.0.0.0:2375 () -H http://unix:///var/run/docker.sockдает bash: syntax error near unexpected token ('`
Умайр Аюб
1
Я использую Redhat Linux
Umair Ayub
Ох, простите. Дополнительные символы (), обновлено. Какая версия RHEL? Просто проверьте, какое значение вы получаете с $ DOCKER_HOST?
mohan08p
$ sudo systemctl позволяет docker запускать службу docker во время загрузки.
mohan08p
Я сейчас пытаюсь установить Docker на CentOS Linux release 7.3.1611 (Core)... Но теперь ошибка Your Linux kernel version 2.6.32-042stab116.2 is not supported for running docker. Please upgrade your kernel to 3.10.0 or newer.... могу ли я обновить ядро, используя yum update kernel... ???? вопрос в том, удалит ли он все на моем сервере? это живые серверы с работающим веб-сайтом, я не хочу испортить его.
Умайр Аюб
9

Обычно это происходит, если вы не остановили докер, вероятно.

Решить

service docker stop
cd /var/run/docker/libcontainerd
rm -rf containerd/*
rm -f docker-containerd.pid
service docker start

затем "Docker Run ....", чтобы загрузить образ и запустить контейнер как обычно

Иннокентий Анигбо
источник
8

Я только что сделал это после установки DOCKER из основных документов. Проблема для меня заключалась в том, что сразу после установки служба не работает.

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

$ sudo service --status-all 
$ sudo service docker start
$ sudo service docker start
Пол МакДэниел
источник
7

Я бегу по руту и ​​попробовал ниже, все заработало:

service docker start

export DOCKER_HOST="tcp://0.0.0.0:2375"
user11500628
источник
3
Если это работает на вашем хосте, то у вас фактически нет пароля root. Любой, у кого есть доступ к этому порту, может запускать команды от имени пользователя root на вашем хосте.
BMitch
6

У меня была эта проблема после закрытия докера будет тянуть контейнер docker pull mongo. Сначала я получал странные ошибки, поэтому я очистил докер sudo apt-get purge docker.ioи переустановил sudo apt-get install docker.io... все это ничего не сделало. Я даже не мог запустить контейнер hello-world. Правильное решение для меня по крайней мере было:

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

После этого я мог тянуть Монго и управлять миром.

Ура!

Джонатан Сэйлор
источник
Я должен был сделать это с Sudo на Ubuntu 18.04
Basanth
4

вот решение, которое работает для меня на Linux

systemctl start docker,

Мухаммед Гейдари
источник
3

Это работает для меня:

sudo systemctl unmask docker
sudo systemctl start docker
Мд. Ракибул Ислам
источник
2

используйте это в экспорте Ubuntu DOCKER_HOST = tcp: // localhost: 2375

Яш Кешри
источник
Если это работает в вашей системе, то у вас фактически нет пароля root. Любой, у кого есть доступ к этому порту, может запускать команды с правами root на хосте.
BMitch
2

export DOCKER_HOST = tcp: // localhost: 2375 идеально подходит для всех, у кого нет доступа sudo, а у пользователя нет доступа к unix: ///var/run/docker.sock

Мантас Марма
источник
Это также полезно для тех, кто обычно не имеет root-прав, но хотел бы легко стать пользователем root на вашем хосте. Любой, имеющий доступ к этому порту, может запускать команды от имени пользователя root.
BMitch
@BMitch не хочет уточнить?
Фран Марзоа
@FranMarzoa от другого пользователя, которому вы не доверяете, или даже от другого хоста, вы можете запустить любую docker runкоманду с привилегированным пользователем root внутри контейнера, с пространствами имен хоста в pid и сети, а также смонтировать корневую файловую систему.
BMitch
2

Я пытался запустить Docker (только что установлен) в экземпляре AWS, когда появляется сообщение. Я просто пишу sudo service docker startи отлично работает для меня.

Также смотрите AWS с Docker

dmarquina
источник
2

введите описание изображения здесь

Я просто забываю запустить Docker Desktop на моем Mac, после запуска Docker Desktop вам будет хорошо.

Пинг Ву
источник
2

Это исключение возникает, когда служба docker не запущена или вошедший в систему пользователь не имеет разрешения на доступ к docker, и обычно это происходит в RedHat

Использование приведенной ниже команды должно решить проблему

запуск докера службы sudo

введите описание изображения здесь

Сумит Арора
источник
1

У меня была такая же проблема для работающего узла gitlab CI: lts image:

  • Я просто перезапустил демон Docker и перезапустил контейнер, он работал для меня.
akshaymittal143
источник
1

Это сработало для меня. Это может сработать только для вас, если вы используете Ubuntu 16 или 18 (14 также может работать). Легко попробовать:

Перейдите в Ubuntu Software, введите Docker. Удалите докер (108 МБ), если он там предустановлен. Установите Docker. Теперь запустите команды и посмотрите, появляется ли такая же ошибка.

Ошибка:

введите описание изображения здесь

После выполнения вышеуказанных шагов. введите описание изображения здесь

Как видите, это сработало :)

Ашиш Гупта
источник
1

Я столкнулся с той же проблемой в Linux, когда я установил docker с помощью yum (yum install docker).

Решение: скачайте бинарный файл docker с официального сайта: установите docker , распакуйте и следуйте инструкциям по установке.

Denys
источник
1

Ни один из текущих ответов не работал для моей версии этой ошибки. Я использую настольную версию Ubuntu 18. Следующие две команды устранили проблему.

sudo snap connect docker:home :home

sudo snap start docker

Эрик
источник
0

Для меня решение было просто убедиться, что я установил правильный пакет Docker. Например, для Ubuntu устаревшие пакеты :

  • докер
  • Докер-двигатель
  • docker.io
  • containerd
  • RunC

Для установки проверьте https://docs.docker.com . Инструкции предоставляются для Ubuntu , CentOS , Debian и Fedora на момент написания.

RikH
источник
Вы пропустили несколько шагов: перейдите по этой ссылке для подписания репо. medium.com/@sebagomez/…
Роберт
@ Роберт, выше я также обращаюсь к официальному docs.docker, чтобы получить ключ PGP. Это более безопасно, чем пользователи, копирующие его с этого сайта или носителя.
RikH
Я попробовал шаги Ubuntu, и они не работают. Нужен процесс подписания и ссылка, которую я предоставил.
Роберт
@ Роберт, спасибо, я удалил свои неполные инструкции и вместо этого просто обращаюсь к официальной документации.
RikH
0

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

К - Токсичность в СО растет.
источник
0

использование docker start <your_container_name>

Затем подключитесь к базе данных, используя mssql -u <yourUsername> -p <yourPassword>

Если вы получили ошибку на первом шаге, то докер работает и перейдите ко второму шагу.

Примечание: я использую Mac в качестве основной ОС, и это может быть тем же ответом для ОС на основе Unix. Если не! Извините заранее.

Паванкумар А.Н.
источник
0

Я также получил сообщение об ошибке ниже, после установки докера и запуска: docker run hello-world

Невозможно подключиться к демону Docker в unix: /var/run/docker.sock. Работает ли демон Docker?

Вот решение, что сработало для меня. Среда - Windows 10 (Не забудьте включить в Windows: «Настройки»> «Обновление и безопасность»> «Режим разработчика») - Ubuntu 18.04 LTS - Docker Desktop версия 2.3.0.2 (45183) - Включить в Docker Desktop: открыть демон на tcp: // localhost: 2375 без TLS - Docker Desktop также должен быть запущен (подключен к Docker Hub ... просто войдите в систему)

После установки Ubuntu обновите репозиторий

sudo apt-get update

Использовать репозиторий поверх HTTPS

sudo apt-get install \ apt-transport-https \ ca-сертификаты \ curl \ gnupg-agent \ свойства-программного обеспечения-общие

Добавьте официальный ключ Docker GPG:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

Убедитесь, что у вас есть ключ с отпечатком пальца

Отпечаток ключа sudo apt-key 0EBFCD88

Обновите репозиторий

sudo apt-get update

Обновите хранилище докеров

sudo add-apt-repository \ "deb [arch = amd64] https://download.docker.com/linux/ubuntu \ $ (lsb_release -cs) \ stable"

Обновите хранилище снова

sudo apt-get update

Команда для установки докера в версии: 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic

sudo apt-get install docker-ce = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic docker-ce-cli = 5: 18.09.9 ~ 3-0 ~ ubuntu-bionic containerd.io

Команда для установки DOCKER_HOST

export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Примечание: поместите указанную выше команду в свой профиль, чтобы начать с ubunto ex: echo "export DOCKER_HOST = 'tcp: //0.0.0.0: 2375'" >> ~ / .bashrc

Добавить пользователя в группу Docker

sudo usermod -aG docker $ USER

Перезапустите убунту

(Закройте и снова откройте окно Ubuntu)

Тестирование установки (НЕ используйте больше sudo перед командами docker (это выдаст ошибку), пользователь "root" уже включен в группу docker)

Докер запустить Привет-мир

Сообщение ниже должно отображаться

Привет из Докера! Это сообщение показывает, что ваша установка работает правильно.

Примечание: если это не удается, снова запустите команду: export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

export DOCKER_HOST = "tcp: //0.0.0.0: 2375"

Ссылка: https://docs.docker.com/engine/install/ubuntu/ Сессия: УСТАНОВИТЕ DOCKER ENGINE

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

apt-cache Мэдисон Докер-Си

Затем установите нужную версию докера:

sudo apt-get установить docker-ce = docker-ce-cli = containerd.io

ukaliko
источник
0

Для всех, у кого проблемы с Docker во время установки.

Ошибка, указывающая на сбой в службе Docker, выполните следующие команды.

$ sudo apt update

$ sudo apt install apt-transport-https ca-certificates curl gnupg2 software-properties-common

$ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -

$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

$ sudo apt update

$ apt-cache policy docker-ce

$ sudo apt install docker-ce
Хишам Джавед
источник
-1

Эта проблема может быть решена навсегда, запустив 1. systemctl enable docker 2. service docker start

СП Редди
источник
Похоже, мне нужно запускать службу Docker при service start dockerкаждой перезагрузке компьютера.
Пран Кумар Саркар
@PranKumarSarkar Нет, если вы запустите «sudo systemctl enable docker»
GabrielBB