ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как исправить ошибку «Отказано в доступе Docker» в Ubuntu

Установить Docker 1.11 на Ubuntu 16.04 LTS x64

Недавно мы установили 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.

Это решило проблему для вас? Если да, мы приветствуем быстрый комментарий от вас.

Exit mobile version