91 votes

Comment corriger le message "dial unix /var/run/docker.sock : connect : permission denied" lorsque les autorisations de groupe semblent correctes ?

J'ai soudainement des problèmes après une mise à jour d'Ubuntu 18.04 : auparavant, j'ai utilisé Docker sans problème sur le système, mais soudainement, je ne peux pas. D'après ce que je peux dire, les autorisations semblent correctes :

$ docker run hello-world
docker: Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.35/containers/create: dial unix /var/run/docker.sock: connect: permission denied.
See 'docker run --help'.
$ ls -last /var/run/docker.sock 
0 srw-rw---- 1 root docker 0 Jul 14 09:10 /var/run/docker.sock
$ whoami
brandon
$ cat /etc/group | grep docker
docker:x:995:brandon
nvidia-docker:x:994:

EDITAR:

Informations sur le groupe :

$ groups
brandon
$ groups brandon
brandon : brandon adm cdrom sudo dip plugdev games lpadmin sambashare docker
$ whoami
brandon

Mise à jour

Depuis le post original où j'ai mis à jour un système de 17.04 à 18.04, j'ai fait deux mises à jour de 16.04 à 18.04, et aucun des systèmes ultérieurs n'a eu le problème. Il se peut donc que le problème soit lié au processus de mise à niveau de 17.04 à 18.04. Je n'ai pas encore effectué une nouvelle installation de 18.04.

1 votes

Est-ce que ça marche si vous exécutez sudo docker run hello-world ?

2 votes

Que se passe-t-il si vous exécutez newgrp docker et réessayer depuis le même terminal ?

0 votes

@mviereck @BMitch - sudo a fonctionné, j'avais essayé plus tôt mais avec un script enveloppant une commande docker, donc cela a échoué (oops). newgrp docker me donne un shell où l'exécution de la commande sans sudo travaux. Il y a donc quelque chose de bizarre avec mon shell de connexion ?

0voto

Butthead Points 1

Veuillez noter : le nom du groupe n'est pas le seul à être important mais apparemment aussi des groupes. Ainsi, si docker Le groupe du système hôte a un gid de 995,

cat /etc/group | grep docker  
docker:x:995:brandon

Vous devez vous assurer que le gid de docker groupe Vous pouvez le faire dans le cadre d'un lancement de script, ou simplement en utilisant exec et de le faire manuellement :

groupmod -g 995 docker

J'espère que cela aidera tous ceux qui viennent ici, il m'a fallu un certain temps pour trouver cette réponse.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X