web-dev-qa-db-fra.com

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

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 résolu ce problème pour le moment en installant Docker à partir de les propres référentiels de Docker , ce qui pourrait convenir aux personnes parcourant cette page. question à l'avenir aussi. Je laisse toutefois la question ouverte à ceux qui veulent pouvoir la gérer depuis l'instantané.

31
Vincent

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 commande Sudo pour exécuter les commandes avec des autorisations élevées à chaque fois.

Solution permanente (suggérée)

Ajoutez l'utilisateur actuel au groupe docker. 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

29
ADDB

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

27
Mike Coleman

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 docker, un processus de menu fixe est créé. Ce processus de menu fixe contient le thread démon dockerd. La commande crée également le docker.sock socket Unix par défaut. Le socket docker.sock est écouté en permanence par le thread de démon dockerd. Cela vous permet de faire IPC au niveau du noyau avec le processus docker.pid. Pour pouvoir utiliser ce socket, vous devez disposer des autorisations appropriées au niveau processus (docker.pid) et au niveau du 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

5
Uddhav Gautam
Sudo setfacl -m user:your_user_name:rw /var/run/docker.sock

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

3
Nahshon paz

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

Vous pouvez ajouter Sudodevant la commande ou vous pouvez ajouter l'utilisateur dans le groupe dockerà l'aide de cette commande:

Sudo usermod -aG docker <USER>

Déconnectez-vous et reconnectez-vous afin que votre appartenance au groupe soit réévaluée.

1
Heesen Ponnusawmy