Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.
Got permission denied while trying to connect to the Docker daemon socket Linux / DevOps

Ошибка Docker: permission denied daemon socket — запуск без sudo

Обновлено: 27.08.2026  ·  Официальная база знаний

Почему возникает ошибка Permission Denied в Docker?

После чистой установки Docker на Ubuntu или Debian попытка выполнить любую стандартную команду (например, docker ps или docker run hello-world) завершается ошибкой прав доступа:

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied

Причина ошибки:

Демон Docker (фоновая служба dockerd) взаимодействует через специальный Unix-сокет /var/run/docker.sock. По соображениям безопасности владельцем этого сокета является суперпользователь root и системная группа docker. Если ваша текущая учетная запись не состоит в этой группе, Linux блокирует доступ.

Пошаговое решение: запуск Docker без использования sudo

  1. Шаг 1. Создаем системную группу docker

    В большинстве случаев группа создается автоматически при установке, но выполните команду для проверки:

    sudo groupadd docker

    (Если группа уже есть, система просто напишет group already exists — это нормально).

  2. Шаг 2. Добавляем своего пользователя в группу docker

    Выполните команду добавления (системная переменная $USER автоматически подставит ваш текущий логин):

    sudo usermod -aG docker $USER
  3. Шаг 3. Применяем изменения групп в текущей сессии

    Чтобы операционная система перечитала членство учетной записи в группах без полного перезапуска сервера, выполните:

    newgrp docker
  4. Шаг 4. Проверяем работу Docker

    Запустите проверочный тестовый контейнер без приставки sudo:

    docker run hello-world

    Если на экране появилось приветствие Hello from Docker! — проблема полностью устранена.

Практический опыт инженера: Никогда не работайте с Docker постоянно под root или через sudo. Запуск docker-compose через sudo приводит к тому, что все созданные на хост-машине файлы логов и кэша получают владельца root:root, после чего ваше веб-приложение теряет возможность их перезаписывать.

Частые вопросы (FAQ)

Безопасно ли добавлять пользователя в группу docker?

Члены группы docker фактически получают права, эквивалентные root-пользователю (так как через монтирование контейнера можно получить доступ к системным файлам хоста). Добавляйте в эту группу только тех пользователей, которым вы доверяете.

Почему после команды usermod ошибка осталась при открытии новой вкладки SSH?

Вам необходимо полностью выйти из сессии SSH командой exit и подключиться к серверу заново, чтобы обновленный токен безопасности применился.

Что делать, если сам демон Docker выключен?

Если сокет вообще отсутствует, проверьте статус службы Docker командой: sudo systemctl status docker. При необходимости запустите ее: sudo systemctl start docker.

Можно ли просто выдать права 777 на сокет docker.sock?

Категорически нет! Команда chmod 777 /var/run/docker.sock откроет дыру в безопасности для любых локальных вредоносных скриптов и сбросится при первой же перезагрузке службы.