разрешено разрешение 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
- Убедитесь, что ваша переменная $ USER установлена
$ echo $ USER
$ sudo usermod -aG docker $ USER
- выйти
- После входа в систему перезапустите сервис Docker.
$ sudo systemctl перезапустить докер
$ docker ps
Ответ 3
Как упоминалось ранее в комментарии, изменения не будут применяться до вашего повторного входа. Если вы делали SSH и открывали новый терминал, он работал бы в новом терминале
Но поскольку вы использовали графический интерфейс и открывали новый терминал, изменения не применялись. Вот почему ошибка не исчезла
Таким образом, команда ниже выполняла свою работу, ее просто повторный вход был пропущен
sudo usermod -aG docker $USER
Ответ 4
Поскольку мой пользователь и пользователь AD, я должен добавить пользователя AD в локальную группу, вручную отредактировав файл /etc/group. К сожалению, команды adduser, похоже, не знают о nsswitch и не распознают пользователя, не локально определенного при добавлении кого-либо в группу.
Затем перезагрузите или обновите /etc/group. Теперь вы можете использовать докер без sudo.
С уважением.
Ответ 5
Причина: сообщение об ошибке означает, что текущий пользователь не может получить доступ к модулю докера, поскольку у пользователя недостаточно разрешений для доступа к сокету UNIX для связи с механизмом.
Быстрая починка:
- Запустите команду от имени пользователя root с помощью sudo.
то есть - судо докер PS
- Измените разрешения /var/run/docker.sock для текущего пользователя.
т.е. - sudo chmod 777/var/run/docker.sock
Постоянное решение:
Добавьте текущего пользователя в группу Docker. Это можно сделать, набрав
sudo usermod -a -G docker $ USER
Примечание. Чтобы изменения вступили в силу, необходимо выйти из системы и войти снова.