J'ai ajouté un utilisateur non root dans le groupe docker et un autre service exécuté lorsque cet utilisateur non root se connecte au démon docker. mais le service ne peut pas fonctionner. Je fais un exemple de test pour cela:
root@# systemctl start docker.service
root@# gpasswd -a tiger docker
créer un service systemd dans tiger:
[Service]
ExecStart=/home/tiger/connectdocker
Restart=always
StartLimitInterval=0
Delegate=true
KillMode=process
[Install]
WantedBy=default.target
la /home/tiger/connectdocker
présente comme suit:
docker run -itd busybox 2> connectdocker.log
démarrer ce service:
tiger@# systemctl --user enable connectdocker.service
tiger@# systemctl --user start connectdocker.service
et le résultat:
Thu Jul 21 00:59:15 CST 2016
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
mais je peux me connecter à docker.sock avec tiger:
tiger@# docker run -itd busybox
997e99f959cfd5500319935ec17677775da9d367d203a11efef8b42161c3ee64
pour prouver cela, je change le /var/run/docker.sock
groupe de docker en tigre, et le service connectdocker peut se connecter au démon docker.
changer /var/run/docker.sock
:
ls -l /run/docker.sock
srw-rw---- 1 root docker 0 Jul 21 00:33 /run/docker.sock
à:
ls -l /run/docker.sock
srw-rw---- 1 root tiger 0 Jul 21 00:33 /run/docker.sock
Réponses:
Vous devez utiliser la
User=
directive dans votresystemd
service.https://www.freedesktop.org/software/systemd/man/systemd.exec.html#User=
Je recommanderais également de déplacer votre script d'un répertoire personnel vers un chemin standard, similaire
/usr/local/bin
ou similaire.Vous devez également assurer la commande de votre
connectdocker.service
en lui donnant leAfter=docker.service
etRequires=docker.service
. Comme il est écrit, leconnectdocker.service
est probablement en train de démarrer à peu près en même temps que ledocker.service
, et vous devrez attendredocker.service
qu'il soit en place avant de pouvoir vous y connecter.https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Requires=
https://www.freedesktop.org/software/systemd/man/systemd.unit.html#Before=
la source