Не вдається підключитися до демона Docker на unix: /var/run/docker.sock. Чи працює дакерський демон?


172

Я застосував усі рішення, доступні в Інтернеті, але все ще не можу запустити Docker.

Я хочу використовувати Scrap 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 дивіться вихід у моєму запитанні ...
Umair Ayub

3
спробуйте це: перезапуск докер-сервісу sudo
Haythem ROUIS

2
ви можете побачити статус вашого докера Деймона, скориставшись цим: sudo service docker statusперевірте, чи він активний
Haythem ROUIS

Відповіді:


161

Ви можете спробувати це:

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
Chris Phan

50

Ви можете отримати цю помилку, якщо докер не закриється чисто. Наступна відповідь стосується пакету оснащення докера.

Запустіть 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!
Гамідреза

47

Просто біжи

sudo dockerd

dockerd - служба демон для контейнерів docker, оскільки вона не працює у фоновому режимі, ми не в змозі вжити жодних дій, пов’язаних із службою, які потрібно перезапустити.


10
Це єдина команда, яка працює для мене. Я думаю, що це смішно, що треба перестрибувати стільки обручів, щоб докерів піднявся та біг.
Homunculus Reticulli

3
Це дає мені помилкуError starting daemon: Devices cgroup isn't mounted
Vineet 'DEVIN' Dev

@fepegar Можливо, у вас не встановлено належного
докера

@YashPokar дійсно, я закінчив перевстановлення, і зараз все працює як очікувалося. Дякую.
fepegar

Тільки команда, яка працює для мене всередині контейнера docker, щоб запустити контейнер docker. Це потрібно для побудови коду, щоб створити власне середовище під час створення. :-)
Ми Борг

21

По-перше, спробуйте з sudo , оскільки поточний користувач може не мати прав доступу для спілкування з docker daemon, тобто /var/run/docker.sock

Якщо його все ще не працює, після встановлення просто зупиніть демон докера як,

$ 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: // з 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 ('`
Umair Ayub

1
Я запускаю redhat linux
Umair Ayub

ой ... вибач. Додаткові символи (), оновлені. Яка версія RHEL? Просто перевірте, яке значення отримуєте з $ DOCKER_HOST?
mohan08p

$ sudo systemctl дозволить докеру запустити службу докера під час завантаження.
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... ???? питання полягає в тому, чи видалить все на моєму сервері? це живі сервери з веб-сайтом, що працює на ньому, я не хочу його зіпсувати.
Umair Ayub

9

Зазвичай це траплялося, якщо ви, мабуть, не зупинили докер.

Щоб вирішити

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

потім "docker run ....", щоб завантажити ваше зображення і запустити контейнер, як зазвичай


8

Я просто натиснув на це після нового встановлення DOCKER з основних документів. Проблема для мене полягала в тому, що одразу після встановлення служба не працює.

Ці команди допоможуть вам переконатися, що докер працює та працює для вашої команди run, щоб знайти його:

$ sudo service --status-all 
$ sudo service docker start
$ sudo service docker start

7

Я працюю на root і спробував нижче, він працював:

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... все це нічого не робило. Я навіть не міг запустити контейнер привітного світу. Принаймні правильне виправлення для мене було:

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

Після цього я міг витягнути монго і запустити привіт світ.

Ура!


Мені довелося це зробити із Судо на Ubuntu 18.04
Базант


2

використовувати це в експорті ubuntu DOCKER_HOST = tcp: // localhost: 2375


Якщо це працює у вашій системі, у вас фактично немає пароля root. Усі, хто має доступ до цього порту, можуть виконувати команди як root на хості.
BMitch

2

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


Це також корисно для всіх, хто зазвичай не має кореневого доступу, але хотів би легко стати корінним вашим хостом. Усі, хто має доступ до цього порту, можуть виконувати команди як root.
BMitch

@BMitch піклуватися про розробку?
Fran Marzoa

@FranMarzoa від іншого користувача, якому ви не довіряєте, або навіть іншого хоста, ви можете запустити будь-яку docker runкоманду з кореневим користувачем всередині контейнера, привілейованим, з просторами імен хостів у pid та мережі та встановленням кореневої файлової системи.
BMitch

2

Я намагався запустити докер (тільки що встановлений) в екземплярі AWS, коли з'являється повідомлення. Я просто пишуsudo service docker start і чудово працює для мене.

Також дивіться AWS з Docker


2

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

Я просто забуваю запускати робочий стіл Docker у своєму mac, після запуску Docker Desktop вам буде добре піти.


2

Цей виняток виникає, коли служба докера не запущена або увійшов у користувач, не має дозволу на доступ до докера, і, як правило, він надходить у RedHat

Використання команди нижче має вирішити проблему

Початок роботи докер-сервера судо

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



1

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

  • Я просто перезапустив демон докера і перезапустив контейнер, він працював на мене.

1

Це працювало для мене. Це може просто працювати для вас, якщо ви використовуєте Ubuntu 16 або 18 (14 також може працювати). Легко спробувати:

Перейдіть до програмного забезпечення Ubuntu, введіть Docker. Видаліть докер (108 mb), якщо він там попередньо встановлений. Встановити докер. Тепер запустіть команди і подивіться, чи не приходить та сама помилка

Помилка:

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

Після виконання вищезазначених кроків. введіть тут опис зображення

Як бачите, це спрацювало :)


1

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

Розв’язання: завантажте докерний бінарний файл з офіційного сайту: встановіть докер , розпакуйте та виконайте кроки встановлення.


1

Жодна з поточних відповідей не працювала для моєї версії цієї помилки. Я використовую настільну версію Ubuntu 18. Наступні дві команди вирішили проблему.

sudo snap connect docker:home :home

sudo snap start docker


0

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

  • докер
  • докер-двигун
  • docker.io
  • контейнер
  • runc

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


Ви пропустили кілька кроків: перейдіть за цим посиланням для підписання репо. medium.com/@sebagomez/…
Роберт

@Robert, вище я також посилаюся на офіційний docs.docker, щоб отримати ключ PGP. Це більш безпечно, ніж користувачі, що копіюють його з цього веб-сайту чи носія.
RikH

Я спробував кроки ubuntu, і ті не працюють. Потрібен процес підписання та надане я посилання.
Роберт

@Robert, дякую, що я видалив неповні інструкції і замість цього просто посилаюся на офіційну документацію.
RikH


0

Це може бути пов'язано з відсутністю місця на диску на жорсткому диску. Переконайтеся, що у вас залишилось місця на пристрої, Докер не може запуститися, якщо не залишилося місця.


0

Використовуйте docker start <your_container_name>

Потім підключіться до бази даних за допомогою mssql -u <yourUsername> -p <yourPassword>

Якщо ви отримаєте помилку на першому кроці, то докер працює і переходите до другого кроку.

Примітка. Я використовую Mac як основну ОС, і це може бути однаковий відповідь для ОС на базі Unix. Якщо ні! Вибачте заздалегідь.


0

Також я отримав повідомлення про помилку нижче, після встановлення докера та запуску: docker run hello-world

Не вдається підключитися до демона Docker на unix: /var/run/docker.sock. Чи працює дакерський демон?

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

Після встановлення ubuntu оновіть сховище

sudo apt-get update

Для використання сховища через HTTPS

sudo apt-get install \ apt-transport-https \ ca-сертифікати \ curl \ gnupg-agent \ software-Properties-common

Додайте офіційний ключ Docker GPG:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | додаток sudo apt-key -

Переконайтеся, що тепер у вас ключ із відбитком пальців

відбиток відбитків ключового слова sudo 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

Додайте користувача до групи докерів

sudo usermod -aG docker $ USER

Перезавантажте ubuntu

(Закрийте та знову відкрийте вікно ubuntu)

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

Докер бігти привіт-світ

Повідомлення нижче повинно відображатися

Привіт від Докера! Це повідомлення показує, що ваша установка справно працює.

Примітка: якщо вона не вдається, запустіть команду ще раз: 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/ Сесія: ВСТАНОВИТИ ДОНЕРНИЙ ДВИГАТЕЛ

Для інших версій докера, які можна встановити за допомогою ubuntu, дивіться сховище за допомогою команди нижче:

apt-cache madison docker-ce

Потім встановіть потрібну версію докера:

sudo apt-get install docker-ce = docker-ce-cli = containerd.io


0

Для всіх, хто має проблеми з 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. start docker service


Здається, мені потрібно запускати службу докера service start dockerщоразу, коли я перезавантажую комп'ютер.
Пран Кумар Саркар

@PranKumarSarkar Не якщо ви запускаєте "sudo systemctl enable docker"
GabrielBB
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.