Я установил Docker на моей машине, где у меня установлена ОС Ubuntu. После чего я установил докер, когда я запускаю

sudo docker run hello-world

Все хорошо, но я хочу скрыть слово sudo, чтобы сделать команду более короткой.

Если я напишу команду без слова sudo

docker run hello-world

Это отображает следующее:

docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.See 'docker run --help'.

То же самое случилось, когда я пытаюсь сделать

docker-compose up

Как я могу решить это?

664
Carlos Andres 24 Фев 2018 в 01:38

11 ответов

Лучший ответ

Если вы хотите запустить docker от имени пользователя без полномочий root, вам нужно добавить его в группу Docker.

  1. Создайте группу Docker, если она не существует
$ sudo groupadd docker
  1. Добавьте вашего пользователя в группу Docker.
$ sudo usermod -aG docker $USER
  1. Выполните следующую команду или Выйдите из системы и снова войдите в систему и запустите (это не работает, вам может потребоваться перезагрузить компьютер)
$ newgrp docker

  1. Проверьте, можно ли запустить Docker без рута
$ docker run hello-world

Взято из докера официальной документации: manage-docker-as- а- некорневой пользователь

399
Shenal Silva 6 Фев 2020 в 10:36

Вы всегда можете попробовать Manage Docker as a non-root user абзац в https: //docs.docker. com / install / linux / linux-postinstall / документы.

После этого также, если проблема сохраняется, вы можете выполнить следующую команду для ее решения:

sudo chmod 666 /var/run/docker.sock
9
Pranav Bhendawade 17 Дек 2019 в 12:46

Получено отказ в разрешении при попытке подключения к сокету демона Docker в unix: ///var/run/docker.sock: Get http: //%2Fvar%2Frun%2Fdocker.sock/v1.40/images/json: набрать unix /var/run/docker.sock: подключиться: разрешение запрещено

sudo chmod 666 /var/run/docker.sock

Это исправит мою проблему.

6
Qinsheng Zhang 10 Сен 2019 в 14:34

Чтобы устранить эту проблему, я искал, где установлены мои докер и docker-compose. В моем случае docker был установлен в /usr/bin/docker, а docker-compose был установлен в /usr/local/bin/docker-compose пути. Затем я пишу это в моем терминале:

Докеру:

sudo chmod +x /usr/bin/docker

К docker-compose:

sudo chmod +x /usr/local/bin/docker-compose

Теперь мне не нужно писать в моем окне командирования слово sudo

/ ************************************************* ********************** /

Errata :

Лучшее решение этой проблемы прокомментировал @mkasberg. Я цитирую комментарий:

That might work, you might run into issues down the road. Also, it's a security vulnerability. You'd be better off just adding yourself to the docker group, as the docs say. sudo groupadd docker, sudo usermod -aG docker $USER. Docs: https://docs.docker.com/install/linux/ Linux - постустановочный /

Большое спасибо!

2
Carlos Andres 23 Фев 2018 в 22:57

Lightdm и kwallet отправляются с ошибкой, которая, по-видимому, не проходит дополнительные группы при входе в систему. Чтобы решить эту проблему, я также, кроме sudo usermod -aG docker $USER, должен был закомментировать

auth optional pam_kwallet.so
auth optional pam_kwallet5.so

Кому

#auth optional pam_kwallet.so
#auth optional pam_kwallet5.so

В /etc/pam.d/lightdm перед перезагрузкой , чтобы группа Docker действительно имела эффект.

Ошибка: https://bugs.launchpad.net/lightdm/+bug/1781418 и здесь: https://bugzilla.redhat.com/show_bug.cgi?id= 1581495

1
Herbert 12 Дек 2018 в 15:33

Sudo chmod 666 /var/run/docker.sock

Это помогло мне, когда я получал сообщение об ошибке даже при входе в докер, но теперь это прекрасно работает в моей системе.

-3
jyoti prakash sahoo 12 Ноя 2019 в 20:32

Серьезно, ребята. Не добавляйте Docker в свои группы и не изменяйте posix сокетов (без ужесточения SELinux), это простой способ создания корневых привилегий. Просто добавьте псевдоним в ваш .bashrc, он проще и безопаснее: alias dc = 'sudo docker'.

1
Cactus Mamelut 4 Ноя 2019 в 14:15

Используйте эту команду

sudo usermod -aG docker $USER

Затем перезагрузите компьютер, это сработало для меня.

1
Sheetala Prasad Tiwari 8 Апр 2019 в 12:34

Я решаю эту ошибку с помощью команды:

$ sudo chmod 666 /var/run/docker.sock
17
Nicolás Alarcón Rapela 22 Авг 2019 в 15:03
  1. Добавить текущего пользователя в группу docker
sudo usermod -aG docker $USER
  1. Измените права доступа к докер-сокету, чтобы иметь возможность подключения демону докера /var/run/docker.sock
sudo chmod 666 /var/run/docker.sock
17
0x3bfc 6 Мар 2019 в 13:18
  1. Добавить группу докеров
$ sudo groupadd docker
  1. Добавьте вашего текущего пользователя в группу Docker
$ sudo usermod -aG docker $USER
  1. Переключить сессию на группу Docker
$ newgrp - docker
  1. Запустите пример для тестирования
$ docker run hello-world
30
Jader Martins 18 Дек 2019 в 17:51