182 votes

Comment réparer docker: Vous avez un problème d'autorisation refusée

J'ai installé Docker sur ma machine où j'ai Ubuntu OS. Après que j'ai installé le panneau, quand je le lance

sudo docker run hello-world

Tous c'est ok, mais je veux cacher le mot sudo de faire plus court la commande.

Si j'écris la commande sans le mot - sudo

docker run hello-world

Que l'affichage de la suivante:

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'.

Il est arrivé la même chose quand j'essaie de faire

docker-compose up

Comment puis-je résoudre ce problème?

292voto

Galigator Points 2250

Après une mise à niveau, j'ai obtenu la permission refusée. Effectuer les étapes de "mkb' post étapes d'installation n'ont pas de changer quoi que ce soit parce que mon utilisateur a déjà été dans le 'panneau' groupe; je retry-il deux fois sans succès.

Après une heure de recherche de cette solution suivante finalement travaillé :

sudo chmod 666 /var/run/docker.sock

La Solution est venue de Olshansk.

Ressembler à la mise à niveau sont de recréer la prise sans assez d'autorisation pour le "docker" groupe.

Problèmes

Ce dur chmod ouvrir le trou de sécurité et après chaque redémarrage, cette erreur de commencer de nouveau et de nouveau, et vous avez pour ré-exécuter la commande ci-dessus à chaque fois. Je veux une solution une fois pour toutes. Pour cela, vous avez deux problèmes :

  • 1) Problème avec l' SystemD : Le socket sera créer uniquement avec le propriétaire de "root" et le groupe "root".

    Vous pouvez le vérifier en premier problème avec cette commande :

    ls -l /lib/systemd/system/docker.socket
    

    Si tout cela est bon, vous devriez voir 'root/docker"et non"root/root'.

  • 2 ) Problème de Connexion graphique : https://superuser.com/questions/1348196/why-my-linux-account-only-belongs-to-one-group

    Vous pouvez le vérifier deuxième problème avec cette commande :

    groups
    

    Si tout est correct, vous devriez voir le menu fixe de groupe dans la liste. Si pas, essayez la commande

    sudo su $USER  -c groups
    

    si vous voyez alors le docker groupe c'est à cause du bug.

Solutions

Si vous parvenez à obtenir une solution de contournement pour la connexion graphique, cela devrait faire l'affaire :

sudo chgrp docker /lib/systemd/system/docker.socket
sudo chmod g+w /lib/systemd/system/docker.socket

Mais Si vous ne pouvez pas gérer ce bug, une pas si mauvaise solution pourrait être ceci :

sudo chgrp $USER /lib/systemd/system/docker.socket
sudo chmod g+w /lib/systemd/system/docker.socket

Ce travail parce que vous êtes dans un environnement graphique et probablement le seul utilisateur sur votre ordinateur. Dans les deux cas, vous avez besoin d'un reboot (ou un sudo chmod 666 /var/run/docker.sock)

220voto

mkb Points 2028

Si vous souhaitez exécuter le panneau utilisateur non root, alors vous devez l'ajouter à la docker groupe.

  1. Créer le menu fixe du groupe.
$ sudo groupadd docker
  1. Ajouter votre utilisateur au menu fixe du groupe.
$ sudo usermod -aG docker $USER
  1. Vous déconnecter et vous reconnecter et qui ne fonctionne pas, vous devrez peut-être redémarrer votre ordinateur en premier)
$ docker run hello-world

Prises à partir du menu fixe la documentation officielle: gérer-docker-comme-un-non-racine de l'utilisateur

22voto

wei.liang Points 327
  1. ajouter un groupe de dockers
 $ sudo groupadd docker
 
  1. ajouter votre utilisateur actuel au groupe de docker
 $ sudo usermod -aG docker $USER
 

3.switch session to groupe de dockers

 $newgrp - docker
 
  1. courir
 $docker run hello-world
 

15voto

Ahmed Abdullah Points 51
  1. Ajouter l'utilisateur actuel au groupe docker
 sudo usermod -aG docker $USER
 
  1. Modifier les autorisations du docker socket pour pouvoir se connecter au démon docker /var/run/docker.sock
 sudo chmod 666 /var/run/docker.sock
 

11voto

kumar Points 147

Je résous cette erreur avec la commande:

 $ sudo chmod 666 /var/run/docker.sock
 

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