Недавно мы установили 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.
Странно, не правда ли? Позвольте нам показать вам, как обойти эту досадную ошибку.
Есть два способа справиться с этим.
Если у вас есть доступ к 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’.
Чтобы запустить команды 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.
Это решило проблему для вас? Если да, мы приветствуем быстрый комментарий от вас.
Проблема решена не была
помогло
sudo chmod 666 /var/run/docker.sock
помогло