- Установка и использование Docker Compose на Fedora 29 / Fedora 28
- 🐳 Как установить и использовать Docker Compose на CentOS 8
- 🐳 Как установить Docker на CentOS 8
- Как установить Docker и запустить Docker контейнеры в Ubuntu
- Как установить Docker в CentOS
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.40/version: dial unix /var/run/docker.sock: connect: permission denied
Например, я хотел проверить версию Docker как обычный пользователь, используя команду:
$ docker version
И я получаю это сообщение об ошибке:
Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:25:46 2020 OS/Arch: linux/amd64 Experimental: false 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.40/version: dial unix /var/run/docker.sock: connect: permission denied
Но когда я запускаю ту же команду с разрешением sudo;
$ sudo docker version
Client: Docker Engine - Community Version: 19.03.8 API version: 1.40 Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:25:46 2020 OS/Arch: linux/amd64 Experimental: false Server: Docker Engine - Community Engine: Version: 19.03.8 API version: 1.40 (minimum version 1.12) Go version: go1.12.17 Git commit: afacb8b7f0 Built: Wed Mar 11 01:24:19 2020 OS/Arch: linux/amd64 Experimental: false containerd: Version: 1.2.13 GitCommit: 7ad184331fa3e55e52b890ea95e65ba581ae3429 runc: Version: 1.0.0-rc10 GitCommit: dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init: Version: 0.18.0 GitCommit: fec3683
После поиска на странице документации Docker я понял, что демон Docker по умолчанию связывается с сокетом Unix вместо порта TCP.
Поскольку этот сокет Unix принадлежит пользователю root, демон Docker будет работать только от пользователя root.
Следовательно, обычные пользователи не могут выполнять большинство команд Docker.
Если вы хотите запустить Docker как пользователь без полномочий root в Linux, вам необходимо выполнить следующие шаги.
Я проверил это на сервере Ubuntu 18.04.
Но это также должно работать на других дистрибутивах Linux.
Запуск Docker от имени пользователя без полномочий root в Linux
Чтобы исправить ошибку « permission denied » и использовать Docker от имени пользователя без полномочий root, создайте группу с именем «docker» с помощью следующей команды:
$ sudo groupadd docker
$ sudo usermod -aG docker $USER
После добавления пользователя в группу Docker выйдите из системы и затем снова войдите в систему, чтобы изменения вступили в силу.
Либо запустите следующую команду, чтобы применить изменения к группам
$ newgrp docker
Отныне обычный (не-root) пользователь может использовать Docker без разрешений sudo.
Позвольте мне запустить следующие команды как обычный пользователь:
$ docker version
$ docker run hello-world
На всякий случай, вы уже выполнили несколько команд Docker с разрешением «sudo», прежде чем добавить своего пользователя в группу Docker, возможно, вы увидите ошибку, похожую на приведенную ниже.
WARNING: Error loading config file: /home/user/.docker/config.json - stat /home/user/.docker/config.json: permission denied
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R
Выйдите из системы и войдите снова, чтобы все это вступило в силу.
Если проблема по-прежнему не устранена, возможно, вам придется удалить каталог ~/.docker/.
Он будет воссоздан автоматически, но вы потеряете все пользовательские настройки, если они есть.