2016-03-07 7 views
4

Я пытаюсь запустить докер в качестве пользователя без полномочий root. Когда я пытаюсь, я получаю следующее сообщение об ошибке:Запуск Docker как пользователя, не являющегося пользователем root

$ docker ps 
FATA[0000] Get http:///var/run/docker.sock/v1.18/containers/json: dial unix /var/run/docker.sock: permission denied. Are you trying to connect to a TLS-enabled daemon without TLS? 

Я могу запустить докер как корень:

$ sudo docker ps 
CONTAINER ID  IMAGE    COMMAND    CREATED    STATUS    PORTS    NAMES 
[...] 

Я поставил этот пользователь в группу Unix docker:

$ groups 
domain users docker suappprod stashadmin config_mgmt remote server access sudevmail sudevsvn 

Тем не менее, по-прежнему кажется, что этот пользователь не может выполнять большинство команд докера без sudoing как root.

Я на старой версии грузчиком:

$ docker --version 
Docker version 1.6.1, build a8a31ef/1.6.1 

Я знаю, что последний является 1,10, и это возможно для нашей компании, чтобы обновить все докер устанавливается в 1.9.2, но это займет много усилий и времени.

Есть ли что-то еще, что мне нужно посмотреть? Пользователь был зарегистрирован и вышел несколько раз. Я еще не перезагрузил систему.

ответ

2

Добавление пользователей в группу Docker (поскольку группа Докер имеет полный контроль в гнездо)

как корень, добавьте пользователя в DOCKER группы:

  • Cat/и т.д./группы
  • gpasswd -a < имя пользователя> докер
  • Выход (как корень)
  • Выйти
  • Войти как нам er и попытаться запустить «Docker PS» для проверки.

Так я снова и снова настраивал его на своих системах Ubuntu.

+0

Группа "Докер" уже существует. Я добавил его раньше. В '/ etc/gshadow' у меня есть' docker:! :: david' и в '/ etc/group', у меня есть запись' docker: x: 1001: david'. Когда я вхожу в систему как 'david' и выполняю команду' groups', я понимаю, что пользователь находится в группе 'docker'. –

+0

Пожалуйста, не обращайте внимание на то, что любой добавленный в группу докеров также может считаться root. https://github.com/moby/moby/issues/9976 –

4

Проверьте, что эта команда дает ->ls -l /var/run/docker.sock Вы можете изменить права доступа к этому файлу, используя CHMOD (Ex: sudo chmod 777 /var/run/docker.sock), в зависимости от того, что права вы хотите дать.

+0

, но при повторном перезапуске старых разрешений. – Makoton

+0

660 будет достаточно для любых целей. Если у всех есть полный доступ к сокету, вы можете добавить всех в группу докеров. –

2

Моя докер версия 17.06.1-с, построить 874a737 на Ubuntu 16.04.3 LTS
Для дистрибутива, что с помощью systemd есть услуга по имени docker.socket

[email protected]:~$ sudo systemctl status docker.socket 
● docker.socket - Docker Socket for the API 
    Loaded: loaded (/lib/systemd/system/docker.socket; disabled; vendor preset: enab 
     Active: active (running) since Sab 2017-08-26 01:15:26 WIB; 9min ago 
    Listen: /var/run/docker.sock (Stream) 

Agu 26 01:15:26 hasto-ubuntu systemd[1]: Starting Docker Socket for the API. 
Agu 26 01:15:26 hasto-ubuntu systemd[1]: Listening on Docker Socket for the API. 
[email protected]:~$ 

Файл расположение на /lib/systemd/system/docker.socket

[email protected]:~$ cat /lib/systemd/system/docker.socket 
[Unit] 
Description=Docker Socket for the API 
PartOf=docker.service 

[Socket] 
ListenStream=/var/run/docker.sock 
SocketMode=0660 
SocketUser=root 
SocketGroup=docker 

[Install] 
WantedBy=sockets.target 
[email protected]:~$ 

Из этого файла мы можем изменить SocketMode=0660 в SocketMode=0666

Restart docker.socket

systemctl restart docker.socket 

Наше разрешение гнездо Докер будет 066 означает, что каждый пользователь может читать и писать в него.

Теперь каждый пользователь может запустить команду docker как пользователь без полномочий root.

[email protected]:~$ docker ps -a 
CONTAINER ID  IMAGE     COMMAND     CREATED  STATUS     PORTS NAMES 
03eb2ba2eacd  google/cadvisor:latest "/usr/bin/cadvisor..." 5 weeks ago Exited (0) 5 weeks ago   elk_cadvisor_1 
52efa40edf3a  portainer/portainer  "/portainer"    7 weeks ago Exited (2) 11 days ago   portainer 
[email protected]:~$ 

[email protected]:~$ docker images 
REPOSITORY   TAG      IMAGE ID   CREATED   SIZE 
portainer/portainer latest     96196eaa6b3   8 weeks ago  10.4MB 
google/cadvisor  latest     f9ba08bafdea  5 months ago  57.3MB 
[email protected]:~$ 

Будьте в курсе внекорневой доступа к докер команду Why we don't let non-root users run Docker in CentOS, Fedora, or RHEL

Ссылка:

  1. Docker Documentation : Control and configure Docker with systemd
  2. Github docker systemd