разрешено разрешение docker.sock

Когда я пытаюсь запустить простые команды докеров, например:

$ docker ps -a

Я получаю сообщение об ошибке:

Получено разрешение отклонено... /var/run/docker.sock: connect: запрещено разрешение

Когда я проверяю разрешения с помощью

$ ls -al /var/run/

Я вижу эту строку:

srw-rw---- root docker docker.sock

Итак, я следую советам многих форумов и добавляю локального пользователя в группу докеров:

$ sudo usermod -aG docker $USER

Но это не помогает. Я все еще получаю такое же сообщение об ошибке. Как я могу это исправить?

Ответ 1

Для тех, кто является новым для оболочки, команда:

$ sudo usermod -aG docker $USER

должен иметь $USER определенный в вашей оболочке. Это часто по умолчанию, но вам может потребоваться установить значение для вашего идентификатора входа в некоторых оболочках.


Изменение групп пользователя не изменяет существующие логины, терминалы и оболочки, открытые пользователем. Чтобы избежать повторного входа в систему, вы можете просто запустить:

$ newgrp docker

чтобы получить доступ к этой группе в текущей оболочке.


После того, как вы это сделали, пользователь имеет прав доступа root на сервере, поэтому это делается только для пользователей, которым доверяют неограниченный доступ sudo.

Ответ 2

  1. Убедитесь, что ваша переменная $ USER установлена

$ echo $ USER

$ sudo usermod -aG docker $ USER

  1. выйти
  2. После входа в систему перезапустите сервис Docker.

$ sudo systemctl перезапустить докер

$ docker ps

Ответ 3

Как упоминалось ранее в комментарии, изменения не будут применяться до вашего повторного входа. Если вы делали SSH и открывали новый терминал, он работал бы в новом терминале

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

Таким образом, команда ниже выполняла свою работу, ее просто повторный вход был пропущен

sudo usermod -aG docker $USER

Ответ 4

Поскольку мой пользователь и пользователь AD, я должен добавить пользователя AD в локальную группу, вручную отредактировав файл /etc/group. К сожалению, команды adduser, похоже, не знают о nsswitch и не распознают пользователя, не локально определенного при добавлении кого-либо в группу.

Затем перезагрузите или обновите /etc/group. Теперь вы можете использовать докер без sudo.

С уважением.

Ответ 5

Причина: сообщение об ошибке означает, что текущий пользователь не может получить доступ к модулю докера, поскольку у пользователя недостаточно разрешений для доступа к сокету UNIX для связи с механизмом.

Быстрая починка:

  1. Запустите команду от имени пользователя root с помощью sudo.

    то есть - судо докер PS

  2. Измените разрешения /var/run/docker.sock для текущего пользователя.

    т.е. - sudo chmod 777/var/run/docker.sock

Постоянное решение:

Добавьте текущего пользователя в группу Docker. Это можно сделать, набрав

sudo usermod -a -G docker $ USER


Примечание. Чтобы изменения вступили в силу, необходимо выйти из системы и войти снова.