Железо и софт • 06.06.2026
Docker в WSL2 выдает ошибку Cannot connect to the Docker daemon at unix как исправить сокет
Развернул локальное окружение в Docker Desktop на Windows 11, но при попытке выполнить команду docker ps или запустить сборку в терминале подсистемы WSL2 (Ubuntu) вылетает критическая ошибка: «Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?». При этом сам графический интерфейс Докера горит зеленым, а в настройках галочка интеграции с дистрибутивом активна. Перезапуск приложения и очистка временного кэша не помогли. Подскажите, как исправить этот сбой прав доступа к системному сокету и вернуть интеграцию сред?
Ответы (5)
Артем Депс
Эта критическая ошибка обычно означает, что у вашего текущего пользователя внутри дистрибутива Линукса слетели права на чтение служебного unix-сокета, через который Докер обменивается командами. Исправить права доступа можно строго по шагам:
1. Откройте терминал вашего дистрибутива (например, Ubuntu) внутри Windows 11.
2. Введите команду принудительного добавления вашего текущего пользователя в группу управления: `sudo usermod -aG docker $USER`.
3. Нажмите Enter и введите ваш пароль суперпользователя.
4. Измените права на сам заблокированный файл сокета следующей командой: `sudo chmod 666 /var/run/docker.sock`.
5. Полностью закройте консоль Линукса, откройте PowerShell от админа и введите `wsl --shutdown` для перезапуска подсистемы. При новом старте Докер подхватит настройки.
Марина Кернел
Привет! Сбой "Cannot open docker.sock" — это классический конфликт изоляции процессов, который часто провоцирует встроенный защитник Windows Defender или установленный сторонний фаервол после минорных апдейтов. Защитное ПО блокирует динамическое создание файлов сокетов в системных каталогах, принимая прямые вызовы команд из-под Линукса за хакерскую активность. В итоге графический интерфейс работает вхолостую, а консольные утилиты не могут отправить управляющий пакет фоновому демону, так как сетевой шлюз закрыт на аппаратном уровне ядра.
Михаил Сисадмин
Ребята, обязательно перепроверьте скрытые системные переменные окружения вашей операционной системы Windows 11. Этот баг намертво зависает, если какая-то пошаговая инструкция из интернета заставила вас вручную создать глобальный флаг с именем `DOCKER_HOST` и прописать туда tcp-адрес. Консольные скрипты начинают полностью игнорировать стандартный локальный путь к файлу `docker.sock` и пытаются гнать сетевые пакеты по внешнему IP-адресу. Удалите эту строку из переменных среды, перезагрузите систему, и связь восстановится.
Никита Кубер
Если файлы сокета заблокированы зависшим фоновым процессом Windows, графический лаунчер не сможет переписать дескриптор. Проведите жесткий сброс службы по инструкции:
1. Выгрузите Docker Desktop из трея и закройте все открытые терминалы сред разработки.
2. Кликните правой кнопкой мыши по меню Пуск и запустите командную строку (cmd) обязательно от имени администратора.
3. Остановите фоновый виндовый сервис управления контейнерами командой: `net stop com.docker.service` и нажмите Enter.
4. Введите команду принудительной очистки зависших Линукс-модулей: `wsl --shutdown`.
5. Снова запустите сервис в cmd командой `net start com.docker.service` и открывайте приложение.
Илья Инфра
Тщательно проверьте один очень простой переключатель в самом графическом окне Докера, который часто слетает при аварийных выключениях ПК. Зайдите в глобальные настройки через иконку шестеренки, откройте вкладку "Resources -> WSL integration" и убедитесь, что тумблер включен напротив вашего конкретного установленного дистрибутива Линукса. Если галочка снята, программа просто не будет пробрасывать сокет внутрь терминала, вызывая бесконечную ошибку.