Autorisation refusée lors de l'exécution de Docker après l'avoir installé en tant que composant logiciel enfichable

33

J'ai installé Docker par le biais du magasin de logiciels, qui indiquait qu'il s'agissait d'un package d'instantané. Ce qui me convient, je suppose, mais malheureusement, toutes les commandes Docker que j'ai essayées ne fonctionnent pas:

$ docker info
Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.30/info: dial unix /var/run/docker.sock: connect: permission denied

Une idée comment résoudre ce problème?

Edit: J'ai travaillé autour de cela pour l'instant en installant Docker à partir des propres référentiels de Docker , ce qui pourrait également fonctionner pour les personnes parcourant cette question à l'avenir. Je laisse toutefois la question ouverte à ceux qui veulent pouvoir la gérer depuis l'instantané.

Vincent
la source
Installation du menu fixe à partir du dépôt officiel du menu fixe. Docker était déjà en cours d'exécution lorsque j'ai ajouté mon utilisateur au dockergroupe, id -nGn'affichait pas docker et toute dockercommande entraînait une erreur d'autorisation refusée. La déconnexion et la reconnexion n'ont pas fonctionné car le processus système de Docker continue de s'exécuter. Le redémarrage du système ou le redémarrage de docker ont montré que l'utilisateur faisait partie du groupe de docker et qu'il était autorisé à exécuter des commandes de docker. Remarque: 0 rep, ne peut pas ajouter de commentaire.
Santosh Patel

Réponses:

33

Ceci est de la page GitHub, avez-vous essayé ces étapes exactes:

If you are using Ubuntu Core 16,

Connect the docker:home plug as it's not auto-connected by default:

$ sudo snap connect docker:home

If you are using an alternative snap-compatible Linux distribution ("classic" in snap lingo), and would like to run docker as a normal user:

Create and join the docker group.

$ sudo addgroup --system docker
$ sudo adduser $USER docker
$ newgrp docker

You will also need to disable and re-enable the docker snap if you added the group while it was running.

$ sudo snap disable docker
$ sudo snap enable docker

De Docker snap github

Mike Coleman
la source
Je n'avais pas vu cette page, alors merci pour le lien. Cela dit, comme je n'utilise pas Ubuntu Core, je devrai suivre les addgroupinstructions, ce qui, je pense, concerne ce que j'ai fait, conformément aux autres réponses. Malheureusement, je préférerais ne plus toucher au système qui fonctionne actuellement, mais j'aimerais l'entendre si quelqu'un d'autre l'essaie et parvient à le faire fonctionner.
Vincent
2
désactiver / activer le docker snap a fait l'affaire pour moi, merci
Manish Kumar
1
Ceci s’applique également à Ubuntu (Desktop) 19.04.
Nick Breen le
31

Le message d'erreur vous indique que votre utilisateur actuel ne peut pas accéder au moteur de menu fixe, car vous ne disposez pas des autorisations nécessaires pour accéder au socket Unix afin de communiquer avec le moteur.

Solution temporaire

Utilisez la sudocommande pour exécuter les commandes avec des autorisations élevées à chaque fois.

Solution permanente (suggérée)

Ajoutez l'utilisateur actuel au dockergroupe. Ceci peut être réalisé en tapant

sudo usermod -a -G docker $USER

Vous devez vous déconnecter et vous reconnecter pour que l'adhésion au groupe prenne effet.

Source: techoverflow.net

ADDB
la source
1
Votre Google-fu est apparemment meilleur que le mien. Malheureusement, ça ne marche pas. Tout d'abord, le dockergroupe n'existait pas. J'ai ensuite d'abord exécuté sudo addgroup dockerpuis relancé votre commande, puis déconnecté puis de nouveau. Malheureusement, l'erreur signalée dans la question persiste ...
Vincent,
2
@ Vincent tu n'as pas oublié que les changements de groupe n'ont pas lieu immédiatement, n'est-ce pas? Essayez newgrp dockerou vous déconnecter et vous connecter.
ADDB
Non, désolé, j'ai oublié de mentionner cela - j'ai mis à jour mon commentaire pendant que vous répondiez :) En cours d'exécution groups vincentdonne:vincent adm cdrom sudo dip plugdev lpadmin sambashare docker
Vincent
@ Vincent juste pour référence, votre démon docker est démarré, non? Essayez sudo /etc/init.d/docker statusou essayez sudo service docker statusceci.
ADDB
Hmm, je ne pense pas que cela fonctionne parce que c'est un jeu d' enfant : paste.ubuntu.com/25219172 Cela dit, ps cax | grep dockerdça donne 31034 ? Ssl 0:05 dockerd.
Vincent
6

Je suppose que votre nom d'utilisateur est déjà dans le groupe Docker. Pour vérifier cela, lancez la commande ci-dessous.

id -nG

Sinon, vous devez ajouter votre utilisateur au groupe de menus en utilisant la commande ci-dessous.

sudo groupadd docker
sudo usermod -aG docker $USER

Lorsque vous exécutez la commande, sudo systemctl start dockerun processus de menu fixe est créé. Ce processus de menu fixe contient un dockerdfil de démon. La commande crée également un docker.socksocket Unix par défaut . Le docker.socksocket est continuellement écouté par le dockerdthread du démon. Cela vous permet de faire de l'IPC au niveau du noyau avec un docker.pidprocessus. Pour pouvoir utiliser cette prise de menu fixe, vous devez disposer des autorisations appropriées à partir du niveau processus ( docker.pid) et du niveau fichier ( docker.sock). Donc, exécuter ci-dessous deux commandes devrait résoudre votre problème. sudo chmod a+rwx /var/run/docker.sock # You can provide just execute permission sudo chmod a+rwx /var/run/docker.pid

Uddhav Gautam
la source
Seulement cela fonctionne pour Ubuntu 18.04. Merci beaucoup Uddhav Gautam
Sabbir
3
sudo setfacl -m user:your_user_name:rw /var/run/docker.sock

ne nécessite pas de redémarrage et est plus sécurisé

Nahshon Paz
la source
1

Vous devez ajouter l'utilisateur au groupe Docker ( voir la documentation officielle ).

Vous pouvez ajouter sudodevant la commande ou vous pouvez ajouter l'utilisateur du dockergroupe en utilisant cette commande:

sudo usermod -aG docker <USER>

Déconnectez-vous et reconnectez-vous pour que votre appartenance à un groupe soit réévaluée.

Heesen Ponnusawmy
la source
Le contenu de ce lien pouvant disparaître, veuillez ajouter les détails pertinents ici.
Chai T. Rex
Pas besoin, l'autre réponse déjà mentionnée en ajoutant l'utilisateur au groupe - cela n'a pas aidé. (Aussi, aucune raison pour laquelle cela aiderait pour l'installation Snap mais pas pour l'installation régulière.)
Vincent