Correction : Impossible de se connecter au démon Docker
L'erreur "unable to connect to the Docker daemon" résulte souvent du fait que l'utilisateur n'est pas dans le groupe Docker, même si le service fonctionne. Des étapes simples peuvent résoudre ce problème.
Vous pourriez être très confus si un terminal Linux vous renvoie une erreur “unable to connect to the Docker daemon”, car très probablement le démon Docker fonctionne déjà lorsque vous la voyez. Bien que vous souhaitiez vous assurer qu'il est en cours d'exécution, vous serez probablement perplexe en découvrant que cette erreur n’a même pas à voir avec le fait que le service ne soit pas démarré. Elle se produit principalement chez les utilisateurs qui ne se sont pas ajoutés au groupe Docker.
Docker crée un groupe d'utilisateurs distinct sur les systèmes Linux, et ceux qui n’ont pas de compte utilisateur ajouté à ce groupe ne pourront pas s’y connecter. Gardez à l'esprit que l'ajout d'un compte utilisateur au groupe Docker équivaut fonctionnellement à des droits root, puisque le démon fonctionne toujours en tant qu'utilisateur root. Cela peut être attendu sur un système serveur Ubuntu à utilisateur unique, mais cela va certainement être quelque chose de pertinent pour ceux qui utilisent Docker sur Arch, Fedora ou Debian.
Méthode 1 : Vérification de l'état du service Docker
Bien qu'il soit presque certain qu'il fonctionne, vous devez vérifier si le service Docker est actuellement en cours d'exécution. Ouvrez une fenêtre de terminal et exécutez systemctl status docker.service en tant qu'utilisateur normal. Vous devriez obtenir des informations sur le numéro PID que le démon Docker a reçu. Si ce n’est pas le cas, vous devrez redémarrer le service.
Si vous l'avez redémarré, essayez de réaliser à nouveau l'action qui a provoqué l'erreur “unable to connect to the Docker daemon”. Si cela fonctionne maintenant, cela signifie que le service n’était pas en cours d’exécution, et vous n’avez pas besoin de vous soucier d’autre chose à part la raison pour laquelle il ne fonctionnait pas. Malheureusement, cela ne fonctionne pas dans la majorité des cas, donc vous devrez passer à autre chose dans ces situations.
Méthode 2 : Ajouter des utilisateurs au groupe Docker
Exécutez docker info depuis la ligne de commande, ce qui vous donnera normalement à nouveau l'erreur “unable to connect to the Docker daemon”.
Si c'est le cas, vous aurez besoin d'exécuter sudo groupadd docker; sudo usermod -aG docker $USER pour vous ajouter au groupe approprié. Si cela génère une erreur parce que vous n'avez pas la commande usermod, vous pouvez modifier la commande pour exécuter sudo groupadd docker; sudo gpasswd -a $USER docker, mais cela ne devrait généralement pas poser de problème puisque la plupart des distributions Linux de qualité commerciale utilisent le même ensemble d'outils. Dans tous les cas, exécutez newgrp docker pour vous connecter au nouveau groupe Docker si ce n'est pas déjà fait.
Gardez à l'esprit que cela ajoutera toujours l'utilisateur avec lequel vous êtes connecté, ce qui ne devrait pas poser trop de problèmes sur la plupart des systèmes des personnes qui n'ont pas plusieurs comptes au-delà de l'utilisateur principal et du compte root. Étant donné que vous avez un accès administratif pour l'instant, exécutez sudo chgrp docker /usr/bin/docker; sudo chgrp docker /var/run/docker.sock pour corriger les permissions sur le socket et la commande Docker. En général, le fichier de socket appartient uniquement à l'utilisateur root, donc cela va corriger ce problème.
Après avoir exécuté cette commande, vous ne devriez plus rencontrer de problème, car il appartient maintenant au même groupe que vous aviez créé dans la commande précédente. Vous voudrez tester pour vous assurer que Docker s'exécute sans sudo, donc tapez docker run hello-world en tant qu'utilisateur normal pour vous assurer que vous ne rencontrez pas d'autres erreurs.
À ce stade, très peu d'utilisateurs continueront à recevoir un message d'erreur. La plupart des problèmes devraient être corrigés à ce moment, mais si vous avez encore des problèmes, il pourrait être bénéfique de vous déconnecter complètement. Essayez d'ouvrir une autre fenêtre d'émulateur de terminal, mais si cela ne fonctionne pas, il peut parfois être utile de redémarrer complètement le système si cela est faisable.
Méthode 3 : Utiliser des ACL pour modifier les métadonnées Docker
Si vous ne voulez pas appartenir à un groupe qui vous confère des droits similaires à ceux d'un utilisateur root, vous pouvez configurer le fichier socket pour qu'il fonctionne avec des permissions spécifiques. Vous pouvez ignorer le processus gpasswd si vous préférez procéder ainsi. Scanner le système de fichiers pour différentes entrées ACL peut être un fardeau pour ceux qui effectuent un audit de sécurité, mais cela vous évite d'avoir à utiliser le groupe Docker entièrement.
Si vous souhaitez procéder de cette manière, vous pouvez exécuter sudo setfacl -m user:name:rw /var/run/docker.sock, tout en remplaçant user et name par les étiquettes appropriées. Cela accorde la permission d'accéder au socket Docker situé à /var/run/docker.sock, ce qui devrait fonctionner avec Debian et Ubuntu Server.
Maintenant que tu as fini de lire Correction : Impossible de se connecter au démon Docker, nous t'invitons à explorer davantage la catégorie Linux. Tu y trouveras d'autres articles intéressants qui élargiront tes connaissances et te tiendront informé. Ne cesse pas de lire et de découvrir plus!
Laisser un commentaire