Comment résoudre l'erreur Got permission denied while trying to connect to the Docker daemon socket ?

p>Jenkins est un système d'automatisation conçu pour les serveurs. On peut piloter des machines pour construire des images, les déployer et automatiser ainsi des projets. Il permet de manipuler Docker et son système de containers. Si, lorsque vous utilisez Jenkins, vous avez le message d'erreur "permission denied while trying to connect to the Docker daemon socket", c'est que vous avez un souci d'autorisation lié à Docker.

Pour fonctionner, Docker nécessite des permissions particulières. L'utilisateur qui le lance doit ainsi appartenir au groupe "docker", ce qui lui permet de lancer le démon qui gère le service. Lorsque vous utilisez Jenkins, la plateforme a son propre utilisateur nommé "jenkins". Vous devez donc ajouter cet utilisateur au groupe "docker". On utilise pour cela la commande "usermod". L'option "-a" indique que l'on ajoute un utilisateur et l'option "-G" suivie du groupe indique que l'ajout se fait au niveau du groupe indiqué. N'oubliez pas de préfixer la commande avec "sudo", car il faut être administrateur de l'ordinateur pour avoir le droit de changer les autorisations. Vous devrez relancer Jenkins après la manipulation pour que le changement soit pris en compte.

sudo usermod -a -G docker jenkins

Cette erreur peut également se produire sans utiliser Jenkins, avec votre propre utilisateur. Vous devez dans ce cas ajouter votre utilisateur au groupe. Cela se fait de la même manière que pour Jenkins.

sudo usermod -a -G docker utilisateur

Vous pouvez vérifier que vous êtes bien dans le groupe "docker" en consultant le fichier "/etc/group".

grep docker /etc/group
docker:x:998:utilisateur

Pour terminer, vous devez vous connecter au groupe. Pour cela, utilisez la commande "newgrp" suivie du nom du groupe. Une fois la commande effectuée, vous devrez soit vous déconnecter de votre compte utilisateur puis vous reconnecter, soit simplement redémarrer la machine.

newgrp docker