Docker Linux

Docker: permission denied while trying to connect to the Docker daemon socket

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

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

Добавьте пользователя в группу docker и перелогиньтесь.

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

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

Сообщение
permission denied docker.sock

Сообщение «permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock» означает, что ваша учётная запись не имеет права обращаться к сокету демона Docker. По умолчанию сокет принадлежит root и группе docker, поэтому обычный пользователь без членства в группе получает отказ.

Варианты решения зависят от политики безопасности: согласованный rootless Docker либо разрешённое добавление в группу docker. Группа docker фактически открывает привилегированный доступ к хосту.

Варианты решения зависят от политики безопасности: согласованный rootless Docker либо разрешённое добавление в группу docker. Группа docker фактически открывает привилегированный доступ к хосту.

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

Возможная причинаКак узнатьЧто делать
Нет в группеПользователь.Проявляется как «permission denied docker.sock» или близкий по смыслу сбой.Добавьте.
СессияНе обновлена.Проявляется как «permission denied docker.sock» или близкий по смыслу сбой.Перелогиньтесь.
СокетПрава.Проявляется как «permission denied docker.sock» или близкий по смыслу сбой.Проверьте.
RootlessРежим.Проявляется как «permission denied docker.sock» или близкий по смыслу сбой.Настройте.

#Пошаговое решение

  1. Разделите доступ к сокету и состояние службыВ терминале Linux выполните docker version. Если клиент работает, но сервер сообщает permission denied к /var/run/docker.sock, проверьте ls -l /var/run/docker.sock и id -nG. Если вместо этого Cannot connect, сначала проверьте службу Docker; добавление в группу не запускает демон.
  2. Оцените необходимость прав администратораГруппа docker на обычной установке предоставляет возможности уровня root на хосте. Если это сервер организации, запросите утверждённый способ доступа (например, rootless Docker) у администратора. Не назначайте сокету режим 666 и не меняйте его владельца без понимания настроек службы.
  3. Если доступ согласован — настройте группуНа стандартной Linux-установке администратор проверяет getent group docker; при наличии группы выполняет sudo usermod -aG docker ИМЯ_ПОЛЬЗОВАТЕЛЯ, подставив нужный логин. Завершите текущий сеанс и войдите снова. Команда изменяет членство пользователя и не должна применяться к посторонней учётной записи.
  4. Проверьте результатВ новом сеансе выполните id -nG, затем docker ps. Если список выводится без permission denied, доступ настроен. При отказе проверьте состояние Docker и расположение сокета; не используйте sudo chmod 666 /var/run/docker.sock.

#Как добавить пользователя

Если администратор разрешил изменение членства в группе, выполните его для конкретной учётной записи согласно шагам ниже, затем полностью переоткройте сеанс. Не создавайте группу и не меняйте сокет автоматически.

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

Убедитесь, что демон запущен (systemctl status docker), а права на сокет корректны: ls -l /var/run/docker.sock должен показывать группу docker. В WSL2 проверьте интеграцию Docker Desktop с вашим дистрибутивом. В контейнерах CI не добавляйте в группу чужие пользователи без необходимости.

#Безопасная альтернатива

Для серверов с повышенными требованиями используйте rootless-режим Docker или Podman, которые не требуют прав root. Не открывайте сокет Docker на все пользователи командой chmod 666: это отключает защиту целиком.

Linux · Терминал (Bash)С осторожностьюНужен sudo
Добавление пользователя в группу docker и проверка.
ls -l /var/run/docker.sock
id -nG
docker ps

Команда может изменить состояние системы или её настройки. Проверьте параметры и последствия перед запуском.

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

Выполните docker run --rm hello-world без sudo: контейнер должен запуститься и вывести приветствие. Если команда по-прежнему отказывает в доступе, вероятно, сеанс не обновил список групп: выполните выход из системы и повторный вход, а в SSH-сеансе переподключитесь. Проверить текущие группы процесса можно командой id.

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

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

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