Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

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 откроет дыру в безопасности для любых локальных вредоносных скриптов и сбросится при первой же перезагрузке службы.

Полезные материалы
Рекомендуем