Docker: permission denied while trying to connect — нет прав на docker.sock
Команда docker не может достучаться до службы Docker: у вашего пользователя нет прав на её сокет. Запустите команду через sudo или добавьте себя в группу docker — ниже по шагам.
Содержание 9
Как выглядит ошибка
В Docker 29 — эта версия ставится из пакетов Ubuntu 24.04 — сообщение такое:
permission denied while trying to connect to the docker API at unix:///var/run/docker.sockВ Docker 28 и более старых версиях оно длиннее, но с теми же словами permission denied и docker.sock:
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/…": dial unix /var/run/docker.sock: connect: permission deniedПочему так
Команда docker — только пульт. Всю работу делает служба Docker, которая работает от root, а команды принимает через особый файл — сокет /var/run/docker.sock. В Ubuntu открыть этот файл могут только root и участники группы docker. Обычный пользователь без sudo и без этой группы получает permission denied.
Команды на этой странице вводятся на сервере: подключитесь к нему по SSH (как подключиться) и набирайте их в том же окне. Права на сокет покажет команда:
ls -l /var/run/docker.socksrw-rw---- 1 root docker 0 Oct 10 12:00 /var/run/docker.sockroot docker — владелец файла и его группа. rw-rw---- — читать и писать могут только они, остальным доступа нет.
Способ 1. Запускайте docker через sudo
sudo docker psЕсли система спросит пароль, введите пароль своего пользователя на сервере. Символы при вводе не видны — так и должно быть: наберите пароль и нажмите Enter. С sudo команда выполняется от root, и права на сокет есть. Способ надёжный, но sudo придётся писать перед каждой командой docker.
Способ 2. Добавьте себя в группу docker
Группа docker в Ubuntu создаётся при установке Docker из пакетов. Добавьте в неё своего пользователя:
sudo usermod -aG docker $USER$USER система сама заменит на имя пользователя, под которым вы вошли, — менять в команде ничего не нужно. Команда ничего не отвечает, так и должно быть.
Новая группа начинает действовать только после нового входа. Отключитесь от сервера командой exit и подключитесь по SSH снова. Затем проверьте:
groupsВ списке должно быть слово docker. Теперь выполните команду без sudo:
docker psЕсли в ответ пришла таблица с заголовками CONTAINER ID, IMAGE, COMMAND и другими — права есть. Пустая таблица значит только, что запущенных контейнеров пока нет.
Если отключаться от сервера не хочется, группу можно включить в текущем окне командой newgrp docker. Она действует только в этом окне.
Если ошибка осталась
- Вы не переподключились после
usermod. Выполнитеexitи войдите на сервер снова. - В группу добавлен не тот пользователь. Если вы выполняли
usermod, войдя под root, в группу попал сам root. Укажите имя явно:sudo usermod -aG docker ivan, где ivan — ваш пользователь. - Сообщение другое — Cannot connect to the Docker daemon. Значит, прав хватает, но служба не запущена: разбор этой ошибки.
Ошибка с config.json
После того как права появились, Docker может предупредить:
WARNING: Error loading config file: /home/ivan/.docker/config.json - stat /home/ivan/.docker/config.json: permission deniedЗначит, папку .docker в вашей домашней папке когда-то создала команда с sudo, и теперь она принадлежит root. Документация Docker советует вернуть её себе двумя командами:
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -RЕсли сайт на обычном хостинге
На обычном хостинге Docker нет: для него нужен свой сервер — VPS — с доступом root.
Тексты ошибок сверены с исходным кодом Docker 29.1.3 — эта версия ставится из пакетов Ubuntu 24.04. В Docker 28 и более старых версиях часть сообщений звучит иначе.
Источники
- Исходный код Docker 29.1.3: request.go — тексты ошибок подключения к Docker в версии 29.
- Исходный код Docker 28.5.2: request.go — текст ошибки о правах в версии 28 и старше.
- Пакет Docker в Ubuntu 24.04: docker.io.docker.socket — сокет /run/docker.sock доступен root и группе docker.
- Пакет Docker в Ubuntu 24.04: docker.io.postinst — при установке создаётся группа docker.
- Документация Docker: шаги после установки в Linux — группа docker, её риски и ошибка с config.json.
Сверено 10 октября 2026 года.
Что почитать дальше
- Permission denied в Linux — как понять, каких прав не хватает, и когда помогает sudo.
- Все ошибки Docker.
- Cannot connect to the Docker daemon.
- VPS для разработчика: группа docker — это root.
- Как подключиться к VPS по SSH.
Проверено и обновлено: 10.10.2026