J'ai soudainement des problèmes après une mise à jour d'Ubuntu 18.04: auparavant, j'utilisais docker sans problème sur le système, mais du coup je ne peux plus. Autant que je sache, 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:
MODIFIER:
Informations de groupe:
$ groups
brandon
$ groups brandon
brandon : brandon adm cdrom Sudo dip plugdev games lpadmin sambashare docker
$ whoami
brandon
Mettre à jour
Depuis le poste original où j'avais mis à niveau un système de 17.04 à 18.04, j'ai effectué deux mises à niveau de 16.04 à 18.04 et aucun des systèmes plus récents ne présentait le problème. Cela pourrait donc avoir quelque chose à voir avec le processus de mise à niveau de 17.04 à 18.04. Je n'ai pas encore effectué de nouvelle installation du 18.04.
ajoutez l'utilisateur au groupe de menus.
Sudo usermod -aG docker $USER
Sudo reboot
Sudo setfacl -m user:brandon:rw /var/run/docker.sock
ne nécessite pas de redémarrage
J'ai fait la solution rapide et cela a fonctionné immédiatement.
Sudo chmod 777 /var/run/docker.sock
Lightdm est un problème connu propre à Ubuntu. Il supprime les groupes secondaires de l'utilisateur dans le cadre de la connexion à l'interface graphique. Vous pouvez suivre ce problème ici: https://bugs.launchpad.net/lightdm/+bug/1781418
Vous pouvez essayer d'éteindre Lightdm ou d'appliquer la solution de contournement mentionnée dans le rapport de bogue:
[Commentez les lignes ci-dessous de /etc/pam.d/lightdm:]
auth optional pam_kwallet.so auth optional pam_kwallet5.so
Les options temporaires incluent la connexion à votre ordinateur avec quelque chose comme une commande ssh ou su -l
, ou l'exécution de la commande newgrp docker
. Celles-ci n’affecteront que le shell actuel et devront être répétées à chaque nouveau terminal.
En dehors de ce problème, les commandes générales permettant à un utilisateur d'accéder directement au socket de menu fixe (et donc d'accès root à l'hôte) sont les suivantes:
Sudo usermod -aG docker $(id -un) # you can often use $USER in place of the id command
newgrp docker # affects the current Shell, logging out should affect all shells