Невозможно подключиться к демону 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

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 "

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


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"

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



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


2

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

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


2

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

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

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

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


1

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

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

1

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

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

Ошибка:

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

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

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


1

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

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


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 на момент написания.


Вы пропустили несколько шагов: перейдите по этой ссылке для подписания репо. 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


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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.