Docker LinuxWindowsmacOS Cannot connect to the Docker daemondocker.sock

Docker: «Cannot connect to the Docker daemon» — как исправить

  • Обновлено
  • Чтение ≈ 5 минут
  • Нужны права администратора

Краткий ответ

Cannot connect to the Docker daemon … Is the docker daemon running? значит, что клиент docker не смог связаться с демоном Docker. Причины: служба не запущена или упала, у вашего пользователя нет прав на сокет /var/run/docker.sock (тогда в тексте будет permission denied), на Windows и macOS не запущен Docker Desktop либо клиент смотрит не на тот адрес из-за DOCKER_HOST или контекста. Проверьте статус службы и текст ошибки — они сразу указывают на нужный вариант.

В этой статье
  1. Что означает ошибка
  2. Причины и решения
  3. Пошаговая диагностика
  4. Шаг 2. Запуск службы
  5. Шаг 3. Права на сокет
  6. Шаг 4. Адрес и контекст
  7. Шаг 5. Журнал службы
  8. Как проверить результат
  9. Если не помогло

#Что означает ошибка

Cannot connect to the Docker daemon
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
По-русскиНе удаётся подключиться к демону Docker по указанному сокету. Запущен ли демон?

Команда docker — это только клиент. Все действия выполняет фоновая служба — демон Docker (dockerd), с которым клиент общается через сокет /var/run/docker.sock или по сети. Ошибка означает, что связь не установилась. Обратите внимание на формулировку: фраза «Is the docker daemon running?» говорит о недоступном демоне, а «permission denied» — о том, что демон есть, но у вас нет права им пользоваться.

#Причины и решения

Возможная причинаКак узнатьЧто делать
Служба Docker не запущенаПосле установки или перезагрузки демон не стартовал либо упал из-за ошибки конфигурации.systemctl status docker показывает inactive или failed.Проверить status и journal, при необходимости запустить вручную, не включать автозапуск без решения.
Нет прав на сокет DockerСокет принадлежит root и группе docker, а ваш пользователь в эту группу не входит.В сообщении есть permission denied while trying to connect to the Docker daemon socket; с sudo docker ps всё работает.Проверить sudo docker info и права; группа docker даёт полномочия root, не добавлять автоматически.
Не запущен Docker Desktop (Windows и macOS)Демон на этих системах работает внутри Docker Desktop; если приложение закрыто или ещё стартует, клиент не к чему подключаться.В трее нет значка Docker или он показывает запуск; в WSL ошибка появляется при выключенной интеграции.Запустите Docker Desktop, дождитесь состояния «Running», включите интеграцию с нужным дистрибутивом WSL.
Клиент смотрит на неверный адресПеременная DOCKER_HOST или выбранный контекст указывают на другой сервер или несуществующий сокет.echo $DOCKER_HOST не пуст; docker context ls показывает активным не тот контекст.Проверить docker context ls, DOCKER_HOST и целевой endpoint прежде переключения.
Rootless-режим или нестандартный сокетDocker установлен без прав root и слушает сокет в каталоге пользователя.Файла /var/run/docker.sock нет, но служба работает под вашим пользователем.Укажите правильный сокет через DOCKER_HOST согласно документации rootless-режима.

#Пошаговая диагностика

  1. Уточните систему и точное сообщениеОткройте терминал, в котором запустили docker, сохраните всю строку ошибки. «Cannot connect» обычно означает недоступный сокет или удалённый сервер; «permission denied» — отдельную проблему доступа. Проверьте docker context ls — звёздочка показывает активный контекст. Если используете удалённый сервер или Docker Desktop, действия для локального Linux-демона не подходят.
  2. Linux: проверьте состояние службы без изменения настроекНа обычном Linux с Docker Engine выполните sudo systemctl status docker --no-pager и docker info. Состояние active (running) означает, что служба запущена; если клиент не подключается, проверьте контекст и права. Если служба inactive, администратор может выполнить sudo systemctl start docker, затем docker info. Запуск службы способен автоматически возобновить контейнеры с заданной политикой перезапуска — оцените это на рабочем сервере. enable для автозапуска не нужен для разовой диагностики.
  3. Windows или macOS: проверьте Docker DesktopНайдите Docker Desktop через Пуск (Windows) или «Программы» (macOS), запустите его и дождитесь состояния запущенного движка. После этого в терминале выполните docker info. В Windows при запуске из WSL откройте Docker Desktop → Settings → Resources → WSL Integration и включите интеграцию только для нужного дистрибутива; опция может отличаться в зависимости от режима Desktop. Если Desktop пишет о проблеме виртуализации, решайте её отдельно — Linux-команды systemctl здесь бесполезны.
  4. Проверьте выбранный контекст и переменные окруженияВ терминале выполните docker context ls и docker context show. В Linux/macOS проверьте printenv DOCKER_HOST; в PowerShell — $env:DOCKER_HOST. Если значение задано вашей рабочей средой или указывает на удалённый узел, не сбрасывайте его вслепую. Для локального движка переключитесь на известный корректный контекст с docker context use ИМЯ, подставив имя из списка, и повторите docker info.
  5. Linux: различайте отсутствие доступа и отсутствие демонаЕсли ошибка содержит permission denied, а sudo docker info работает, у пользователя нет доступа к сокету. На личном компьютере можно пользоваться sudo docker ... после понимания последствий. Добавление в группу docker даёт полномочия уровня root и допустимо только по решению администратора; это не безопасное исправление по умолчанию. Не делайте chmod 666 /var/run/docker.sock и не открывайте Docker API в сеть.
  6. Если служба не запускается, прочитайте журналLinux: выполните sudo journalctl -u docker -n 80 --no-pager и sudo systemctl status docker --no-pager. Увидели ошибку JSON? Если существует /etc/docker/daemon.json, проверьте его через sudo python3 -m json.tool /etc/docker/daemon.json (не меняет файл). При ошибке заполнения диска выполните df -h; не удаляйте вручную /var/lib/docker, так можно уничтожить образы и тома.
  7. Повторите безопасную проверкуВыполните docker info и docker ps в том терминале, где ранее возникала ошибка. Успех — видны сведения о сервере и список контейнеров, даже если он пуст. При повторе проблемы сообщите администратору ОС, активный контекст, точную строку ошибки и статус службы; не передавайте секретные параметры удалённого контекста.

#Шаг 2. Запуск службы

Linux · Терминал (Bash)КомандаНужен sudo
Первую команду выполнить для проверки; вторую — только если служба не запущена и её запуск согласован. При старте могут автоматически возобновиться контейнеры.
sudo systemctl status docker --no-pager
sudo systemctl start docker

#Шаг 3. Права на сокет

Linux · Терминал (Bash)КомандаНужен sudo
Сравнить доступность Docker без sudo и с sudo. Смена группы docker не требуется для диагностики; членство в ней предоставляет права уровня root.
docker info
sudo docker info

#Шаг 4. Адрес и контекст

Linux · Терминал (Bash)Команда
Linux/macOS: проверка переменной DOCKER_HOST и текущего контекста; переключайте его только после выяснения назначения удалённых адресов.
printenv DOCKER_HOST
docker context ls
docker context show

#Шаг 5. Журнал службы

Linux · Терминал (Bash)КомандаНужен sudo
Последние записи журнала службы. Ищите строки с error, failed, а также упоминания daemon.json.
sudo journalctl -u docker -n 50 --no-pager

#Как проверить результат

  • docker info показывает секцию Server без ошибки подключения.
  • docker ps выводит список контейнеров (он может быть пуст).
  • Автоматический запуск службы при старте ОС настраивается отдельно и не нужен для первичной диагностики.

#Если не помогло

Проверьте, нет ли в /etc/docker/daemon.json синтаксических ошибок (служба не стартует с некорректным JSON), хватает ли места на диске и не занят ли сокет другим процессом. На Windows убедитесь, что включены виртуализация в BIOS и компонент WSL 2; при проблемах с Docker Desktop помогает перезапуск приложения и wsl --shutdown с последующим запуском.

Так эту ошибку тоже называют

Источники и обновления

Последнее обновление статьи: 1 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.