🐳 Как запустить Docker от пользователя без полномочий root в Linux |

🐳 Как запустить Docker от пользователя без полномочий root в Linux

Мануал
Установить Docker на Linux очень просто:
Любой, даже новичок, может установить его в течение 15 минут.
После установки Docker я заметил, что не могу выполнять большинство операций Docker от обычного пользователя.
Мне приходилось каждый раз запускать Docker от «пользователя root» или с разрешением «sudo».
Ранее я уже писал об этом:
Теперь я захотед несколько расширить статью.
Всякий раз, когда я пытался запустить Docker как пользователь без полномочий root или без разрешения 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.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
Система отображает все подробности текущей установленной версии Docker, как показано в выводе ниже:
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
Затем добавьте своего пользователя в группу 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
Приведенное выше сообщение об ошибке указывает на то, что каталог ~/.docker / был создан с неправильными разрешениями из-за команд «sudo».
Чтобы устранить эту проблему, измените владельца и разрешения этого каталога с помощью следующих команд:
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R

Выйдите из системы и войдите снова, чтобы все это вступило в силу.

Если проблема по-прежнему не устранена, возможно, вам придется удалить каталог ~/.docker/.

Он будет воссоздан автоматически, но вы потеряете все пользовательские настройки, если они есть.

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий