J'ai installé Docker sur ma machine sous Ubuntu. Après que j'ai installé le menu fixe, quand je lance
Sudo docker run hello-world
Tout va bien, mais je veux cacher le mot Sudo
pour abréger la commande.
Si j'écris la commande sans le mot Sudo
docker run hello-world
Cela affiche ce qui suit:
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'.
C'est arrivé pareil quand j'essaie de faire
docker-compose up
Comment puis-je résoudre ça?
Si vous souhaitez exécuter le menu fixe en tant qu'utilisateur non root, vous devez l'ajouter au groupe de menus.
Créez le groupe de docker.
$ Sudo groupadd docker
Ajoutez votre utilisateur au groupe de menus fixes.
$ Sudo usermod -aG docker $USER
Déconnectez-vous et connectez-vous à nouveau et exécutez.
$ docker run hello-world
Extrait de la documentation officielle de docker: https://docs.docker.com/install/linux/linux-linux-postinstall/#manage-docker-as-a-non-root-user
Après une mise à niveau, la permission m'a été refusée. Les étapes de «mkb» étapes post-installation n'ont aucune modification, car mon utilisateur faisait déjà partie du groupe «docker». Je réessaye deux fois sans succès.
Après une heure de recherche, cette solution suivante a finalement fonctionné:
Sudo chmod 666 /var/run/docker.sock
La solution est venue de Olshansk .
On dirait que la mise à niveau a recréé le socket sans autorisation suffisante pour le groupe "docker".
Problèmes: Ce disque chmod ouvre un trou de sécurité et après chaque redémarrage, cette erreur se répète encore et encore et vous devez 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 SystemD: le socket sera créé uniquement avec le propriétaire 'root' et le groupe 'root' . Vous pouvez vérifier ce 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 avec connexion graphique: https://superuser.com/questions/1348196/why-my-linux-account-only-belongs-to-one-group peut vérifier ce deuxième problème avec cette commande:
groups
Si tout est correct, vous devriez voir le groupe docker dans la liste . Sinon, essayez la commande
Sudo su $USER -c groups
si vous voyez alors le groupe docker c'est à cause du bogue.
Solutions: Si vous parvenez à trouver une solution de contournement pour la connexion graphique, le travail devrait être fait:
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 bogue, une solution pas si mauvaise pourrait être la suivante:
Sudo chgrp $USER /lib/systemd/system/docker.socket
Sudo chmod g+w /lib/systemd/system/docker.socket
Cela fonctionne parce que vous êtes dans un environnement graphique et êtes probablement le seul utilisateur de votre ordinateur . Dans les deux cas, vous avez besoin d’un redémarrage (ou d’un Sudo chmod 666 /var/run/docker.sock).
$ Sudo groupadd docker
$ Sudo usermod -aG docker $USER
3. basculer la session vers le groupe de dockers
$newgrp - docker
$docker run hello-world
docker
Sudo usermod -aG docker $USER
/var/run/docker.sock
Sudo chmod 666 /var/run/docker.sock
Je résous cette erreur avec la commande:
$ Sudo chmod 666 /var/run/docker.sock
utiliser cette commande
Sudo usermod -aG docker $USER
puis redémarrez votre ordinateur cela a fonctionné pour moi.
lightdm et kwallet sont livrés avec un bogue qui semble ne pas transmettre les groupes supplémentaires lors de la connexion. Pour résoudre ce problème, j’ai également, à côté de Sudo usermod -aG docker $USER
, commenté
auth optional pam_kwallet.so
auth optional pam_kwallet5.so
à
#auth optional pam_kwallet.so
#auth optional pam_kwallet5.so
dans /etc/pam.d/lightdm
avant de redémarrer, pour que le groupe de dockers produise réellement ses effets.
bug: https://bugs.launchpad.net/lightdm/+bug/1781418 et ici: https://bugzilla.redhat.com/show_bug.cgi?id=1581495