Недавно мы установили 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.
Странно, не правда ли? Позвольте нам показать вам, как обойти эту досадную ошибку.
Исправление ошибки ‘Got permission denied while trying to connect to the Docker daemon socket’ в Docker в Ubuntu
Есть два способа справиться с этим.
Исправление 1: запустить все команды Docker с помощью sudo
Если у вас есть доступ к sudo в вашей системе, вы можете запустить каждую команду docker с помощью sudo, и вы больше не увидите ошибку ‘Got permission denied while trying to connect to the Docker daemon socket’.
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
Но запускать каждый раз команду docker с помощью sudo очень неудобно. Вы пропустите добавление sudo в начало, и вы снова получите сообщение об ошибке ‘permission denied’.
Исправление 2: Запуск команд docker без sudo
Чтобы запустить команды docker без sudo, вы можете добавить свою учетную запись пользователя (или учетную запись, для которой вы пытаетесь решить эту проблему) в группу docker.
Сначала создайте группу Docker. Группа может уже существовать, но выполнение команды создания группы не повредит.
sudo groupadd docker
Теперь, когда у вас есть группа Docker, добавьте своего пользователя в эту группу. Мы предполагаем, что вы пытаетесь сделать это для своей учетной записи, и в этом случае вы можете использовать переменную $USER.
sudo usermod -aG docker $USER
Убедитесь, что ваш пользователь был добавлен в группу Docker, перечислив пользователей группы. Вы, вероятно, должны выйти и снова войти в систему.
andreyex@destroyer:~$ groups andreyex adm cdrom sudo dip plugdev lpadmin sambashare docker
Если вы проверите свои группы. а группы docker нет в списке даже после выхода из системы, возможно, вам придется перезапустить Ubuntu.
Теперь, если вы попытаетесь запустить команды 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. Это должно быть хорошо.
Мы надеемся, что эта небольшая статья помогла вам исправить надоедливое:
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 в Ubuntu.
Это решило проблему для вас? Если да, мы приветствуем быстрый комментарий от вас.