[Решено] Получил отказ в разрешении при попытке подключения к сокету демона Docker
Эта подробная статья по устранению неполадок поможет вам исправить ошибку отказа в разрешении с помощью Docker в Ubuntu и других дистрибутивах Linux на базе Ubuntu.
Недавно я установил Docker в Ubuntu. Это было очень легко. Но когда я попытался запустить команду Docker, у меня возникла такая ошибка:
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.39/containers/json: dial unix /var/run/docker.sock: connect: permission denied
Это не значит, что я пытаюсь запустить что-то особенное. Это происходит и с базовой командой docker, такой как ps.
Странно, не так ли? Позвольте мне показать вам, как обойти эту досадную ошибку.
Исправление ошибки «Получено отказано в разрешении при попытке подключения к сокету демона Docker» с помощью Docker в Ubuntu
Есть два способа справиться с этим.
Исправление 1. Запустите все команды Docker с помощью sudo.
Если у вас есть доступ к sudo в вашей системе, вы можете запускать каждую команду docker с помощью sudo, и вы больше не увидите сообщение «Получено отказано в разрешении при попытке подключения к сокету демона Docker».
sudo docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
13dc0f4226dc ubuntu "bash" 17 hours ago Exited (0) 16 hours ago container-2
2d9a8c190e6c ubuntu "/bin/bash" 17 hours ago Created container-1
Но запускать каждую команду докера с помощью sudo очень неудобно. Если вы пропустите добавление sudo в начало, вы снова получите сообщение об ошибке «отказано в доступе».
Исправление 2. Запуск команд Docker без sudo.
Чтобы запускать команды Docker без sudo, вы можете добавить свою учетную запись пользователя (или учетную запись, для которой вы пытаетесь решить эту проблему) в группу Docker.
Сначала создайте группу докеров с помощью команды groupadd. Возможно, группа уже существует, но запуск команды создания группы не помешает.
sudo groupadd docker
Теперь, когда у вас есть группа Docker, добавьте своего пользователя в эту группу с помощью команды usermod. Я предполагаю, что вы пытаетесь сделать это для своей собственной учетной записи пользователя, и в этом случае вы можете использовать переменную $USER.
sudo usermod -aG docker $USER
Убедитесь, что ваш пользователь добавлен в группу Docker, перечислив пользователей группы. Вероятно, вам придется выйти из системы и войти снова.
abhishek@linux-console:~$ groups
abhishek adm cdrom sudo dip plugdev lpadmin sambashare docker
Если вы проверите свои группы и группы Docker не отображаются в списке даже после выхода из системы, возможно, вам придется перезапустить Ubuntu. Чтобы избежать этого, вы можете использовать команду newgrp следующим образом:
newgrp docker
Теперь, если вы попытаетесь запустить команды Docker без sudo, все должно работать нормально.
Дальнейшее устранение неполадок
В некоторых случаях вам может потребоваться добавить дополнительные разрешения для некоторых файлов, особенно если в прошлом вы запускали команды Docker с помощью sudo.
Вы можете попробовать изменить групповое владение файлом /var/run/docker.sock.
sudo chown root:docker /var/run/docker.sock
Вы также можете попробовать изменить групповое владение каталогом ~/.docker.
sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
sudo chmod g+rwx "$HOME/.docker" -R
А затем попробуйте запустить Docker с помощью sudo. Все должно быть в порядке.
Я надеюсь, что это небольшое руководство помогло вам исправить раздражающее сообщение «Получено отказано в разрешении при попытке подключения к сокету демона Docker по адресу unix:///var/run/docker.sock: Получите http://%2Fvar%2Frun». %2Fdocker.sock/v1.39/containers/json: наберите unix /var/run/docker.sock: Connect: разрешение отклонено »ошибка с Docker в Ubuntu.
Это решило проблему для вас? Если да, я приветствую быстрый комментарий от вас. Если нет, то я буду рад помочь вам решить эту проблему дальше.