Как изменить группу docker.socket

Я управляю несколькими вычислительными узлами под управлением Ubuntu 18.04 (с systemd) и Docker внутри наиболее надежной сети.

У меня есть сервер аутентификации, поэтому вместо того, чтобы вручную добавлять пользователей в группу докеров, чтобы они могли запускать команды докеров, я создал группу ldap-docker на сервере аутентификации и добавил в нее своих пользователей. Затем я добавил «group»: «ldap-docker» в файл /etc/docker/daemon.json и удалил локальную группу «docker» из систем.

Это отлично работает на нескольких хостах, но на некоторых из них docker.service не запускается, потому что /var/run/docker.sock по-прежнему принадлежит root: root, а не root: ldap-docker. docker.socket.service также сообщает о сбое запуска

$ docker ps
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/containers/json: dial unix /var/run/docker.sock: connect: permission denied
$ sudo systemctl status docker.socket
● docker.socket - Docker Socket for the API
   Loaded: loaded (/lib/systemd/system/docker.socket; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Fri 2021-03-12 08:11:48 PST; 8h ago
   Listen: /var/run/docker.sock (Stream)

Mar 12 08:11:48 host.example.com systemd[1]: Starting Docker Socket for the API.
Mar 12 08:11:48 host.example.com systemd[1171]: docker.socket: Failed to resolve group docker: Connection refused
Mar 12 08:11:48 host.example.com systemd[1]: docker.socket: Control process exited, code=exited status=216
Mar 12 08:11:48 host.example.com systemd[1]: docker.socket: Failed with result 'exit-code'.
Mar 12 08:11:48 host.example.com systemd[1]: Failed to listen on Docker Socket for the API.

Я могу запустить sudo chgrp в сокете /var/run/docker.sock, но служба docker уже не запустилась, так что это не помогает.

Как вы контролируете запуск службы docker.sock.service? и почему моя установка работает нормально на одних машинах, а на других - нет?

0
задан 13 March 2021 в 03:45
1 ответ

Итак, проблема была двоякой. Во-первых, вам (вероятно) нужно изменить группу dockerd с помощью --group, а также вам нужно изменить группу docker.socket.service.

Другая часть заключается в том, что вам нужно изменить настройки с помощью переопределения systemd ( sudo systemctl edit docker ), а не вносить изменения в /lib/systemd/system/docker.service, поскольку он автоматически восстанавливается к известным хорошим значениям при перезагрузке (не удалось найти доказательства в документации, но, похоже, так и произошло).

0
ответ дан 24 April 2021 в 02:09

Теги

Похожие вопросы