100 votes

Autorisation docker.sock refusée

Lorsque j'essaie d'exécuter simple panneau des commandes comme:

$ docker ps -a

Je reçois un message d'erreur:

A obtenu la permission denied ... /var/run/docker.chaussettes: se connecter: permission denied

Lorsque je vérifie les autorisations avec

$ ls -al /var/run/

Je vois cette ligne:

srw-rw---- root docker docker.sock

Donc, j'ai suivi un des conseils de bon nombre de forums et ajouter un utilisateur local à docker groupe:

$ sudo usermod -aG docker $USER

Mais ça n'aide pas. Je reçois toujours le même message d'erreur. Comment puis-je résoudre ce problème?

192voto

BMitch Points 3744

Pour ceux qui sont nouveaux à la shell, la commande:

$ sudo usermod -aG docker $USER

doit avoir $USER défini dans votre shell. C'est souvent là par défaut, mais vous devrez peut-être définir la valeur de votre id de connexion dans certaines coquilles.


Changer les groupes d'un utilisateur n'a pas à modifier les connexions, les terminaux, et des coquilles qu'un utilisateur a ouvert. Afin d'éviter d'effectuer un vous connecter à nouveau, vous pouvez simplement exécuter:

$ newgrp docker

pour obtenir l'accès à ce groupe dans votre shell courant.


Une fois que vous avez fait cela, l'utilisateur dispose d'un accès root sur le serveur, donc le faire uniquement pour les utilisateurs qui sont approuvés sans aucune restriction sudo accès.

41voto

Nitish Points 59

La raison: Le message d'erreur signifie que l'utilisateur ne peut pas accéder au menu fixe du moteur, car l'utilisateur n'a pas les autorisations suffisantes pour accéder à la socket UNIX pour communiquer avec le moteur.

Quick Fix:

  1. Exécutez la commande en tant que root avec la commande sudo.

    c'est à dire - sudo docker ps

  2. Modifier les permissions de /var/run/docker.chaussette pour l'utilisateur actuel.

    c'est à dire - sudo chmod 777 /var/run/docker.chaussette

Solution Permanente:

Ajouter l'utilisateur actuel pour le menu fixe du groupe. Ceci peut être obtenu en tapant

sudo usermod -a-G débardeur $UTILISATEUR


Remarque: vous devez Vous déconnecter et vous reconnecter pour que les modifications prennent effet.

28voto

1nternetz Points 93
  1. Assurez-vous que votre variable $ USER est définie

$ echo $ USER

$ sudo usermod -aG docker $ USER

  1. se déconnecter
  2. Lors de la connexion, redémarrez le service de menu fixe

$ docker sudo systemctl restart

$ docker ps

4voto

Tarun Lalwani Points 75641

Comme mentionné précédemment dans le commentaire, les modifications ne s'appliqueront pas avant votre nouvelle connexion. Si vous faisiez un SSH et ouvriez un nouveau terminal, cela aurait fonctionné dans un nouveau terminal

Mais puisque vous utilisiez l'interface graphique et ouvrez le nouveau terminal, les modifications n'ont pas été appliquées. C’est la raison pour laquelle l’erreur n’est pas partie

Donc, au-dessous de la commande a fait son travail, sa juste une nouvelle connexion a été manquée

 sudo usermod -aG docker $USER
 

1voto

GSAN Points 397

En tant qu'utilisateur AD et utilisateur AD, je dois ajouter l'utilisateur AD au groupe local en modifiant manuellement le fichier / etc / group. Malheureusement, les commandes adduser ne semblent pas être au courant pour nsswitch et ne reconnaissent pas un utilisateur non défini localement lors de l'ajout d'une personne à un groupe.

Puis redémarrez ou actualisez / etc / group. Maintenant, vous pouvez utiliser docker sans sudo.

Cordialement.

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