Глиф Учебники

Ошибка Cannot connect to the Docker daemon

Справочник · Docker · 2 минуты чтения

Текст
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Команда docker не нашла службу Docker: служба не запущена, упала при старте или команда обращается не туда.

Запустите Docker

Что делать, зависит от того, как установлен Docker: службой в Linux (Docker Engine) или приложением Docker Desktop.

Linuxзапустите службу

Посмотрите состояние службы и запустите её:

Bash
sudo systemctl status docker
sudo systemctl start docker

Чтобы служба запускалась при включении компьютера (на Ubuntu и Debian это включено сразу после установки):

Bash
sudo systemctl enable docker

Если start не помог и служба снова failed, причина — в журнале:

Bash
sudo journalctl -u docker --no-pager -n 50

Самые частые причины в журнале:

  • ошибка в /etc/docker/daemon.json — лишняя запятая, незакрытая кавычка, неизвестный параметр. Проверьте файл: python3 -m json.tool /etc/docker/daemon.json укажет строку с ошибкой. Исправьте и снова sudo systemctl start docker;
  • закончилось место на диске — проверьте df -h /var/lib/docker;
  • две установки Docker сразу — например, пакет из репозитория и snap. Оставьте одну: список snap-пакетов показывает snap list.

Дальше: «Команда обращается не туда»

Docker Desktopзапустите приложение

На Windows и macOS, а также в Docker Desktop для Linux, эта ошибка значит, что Docker Desktop не запущен. Запустите приложение и дождитесь, пока оно сообщит, что движок работает, — потом повторите команду. На Windows проверьте ещё, что WSL 2 работает: wsl --status в PowerShell.

Команда обращается не туда

Команда docker может быть настроена на другую службу — через переменную DOCKER_HOST или через контекст:

Bash
echo $DOCKER_HOST
docker context ls

Если DOCKER_HOST не пустая, а вы работаете с локальным Docker, уберите её: unset DOCKER_HOST (и найдите, где она задаётся, — обычно в ~/.bashrc). В списке контекстов текущий отмечен звёздочкой; вернуться к обычному локальному Docker — docker context use default.

Не путайте с permission denied

Если в ошибке есть слова permission denied, служба работает, а у вашего пользователя нет прав на неё: это другая справка — Ошибка permission denied при запуске docker. Быстрая проверка: если sudo docker ps работает, а docker ps — нет, дело в правах, а не в службе.