Comment fixer le panneau: vous avez la permission denied problème
J'ai installé Docker sur ma machine où j'ai Ubuntu OS. Après que j'ai installé le panneau, quand je lance
sudo docker run hello-world
Tous c'est ok, mais je veux cacher le mot sudo
pour 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?
Vous devez vous connecter pour publier un commentaire.
Si vous souhaitez exécuter le panneau utilisateur non root, alors vous devez l'ajouter à la docker groupe.
Prises à partir du menu fixe la documentation officielle:
gérer-docker-comme-un-non-racine de l'utilisateur
sudo systemctl restart docker
docker
groupe essentiellement des subventions de l'accès root, sans application régulière sudo politiques & vérification. Voir GitHub problème n ° 9976 pour plus d'informations et de discussion.systemctl start docker
pour le faire fonctionner$sudo snap restart docker
Après une mise à niveau, j'ai obtenu la permission refusée.
Effectuer les étapes de "mkb' les étapes de post-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é :
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
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 :
Si tout cela est bon, vous devriez voir "
root/docker
' pas 'root/root
'.2 ) Problème avec 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 :
Si tout est correct, vous devriez voir le docker groupe dans la liste.
Si pas, essayez la commande
si vous voyez alors la 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 :
Mais Si vous ne pouvez pas gérer ce bug, une pas si mauvaise solution pourrait être ceci :
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
):ro
sur la fin... dès que j'ai ajouté que j'étais bon pour allercentos
avec l'utilisateurcentos
,sudo chmod 666 /var/run/docker.sock
parfaitement travaillé.3.commutateur session de docker groupe
newgrp
de commande, vous êtes invité pour un mot de passe et n'accepte pas mon mot de passe utilisateur. Au lieu de celasu - $USER
travaillé pour éviter la déconnexion/en.docker
groupele démon docker
/var/run/docker.sock
- Je résoudre cette erreur avec la commande :
Ce régler mon problème.
Pour remédier à ce problème, j'ai cherché où est mon débardeur et docker-composer installé. Dans mon cas,
docker
a été installé dans/usr/bin/docker
etdocker-compose
a été installé dans/usr/local/bin/docker-compose
chemin. Ensuite, j'écris dans mon terminal:De docker:
À
docker-compose
:Maintenant, je n'ai pas besoin d'écrire dans mes commandes de menu fixe le mot
sudo
/***********************************************************************/
ERRATA:
La meilleure solution de ce problème a été commenté par @mkasberg. Je cite le commentaire:
That might work, you might run into issues down the road. Also, it's a security vulnerability. You'd be better off just adding yourself to the docker group, as the docs say. sudo groupadd docker, sudo usermod -aG docker $USER.
Docs:
https://docs.docker.com/install/linux/linux-postinstall/Merci beaucoup!
docker
groupe, comme les docs disent.sudo groupadd docker
,sudo usermod -aG docker $USER
.lightdm et kwallet navire avec un bug qui semble ne pas passer le complémentaire de groupes lors de la connexion. Pour résoudre cela, j'ai aussi, à côté de
sudo usermod -aG docker $USER
, avait pour commenterà
dans
/etc/pam.d/lightdm
avant de redémarrer, pour le menu fixe-groupe d'avoir effet.bug: https://bugs.launchpad.net/lightdm/+bug/1781418 et ici: https://bugzilla.redhat.com/show_bug.cgi?id=1581495
utilisez cette commande
redémarrez votre ordinateur, que ce qui a fonctionné pour moi.
Sérieusement les gars. Ne pas ajouter de Docker dans vos groupes ou modifie la prise posix (sans un durcissement de SELinux), c'est une façon simple de faire un root privesc. Juste ajouter un alias dans votre .bashrc, c'est plus simple et plus sûre : alias dc='sudo docker'.
Après le Panneau d'Installation sur Centos. Lors de l'exécution de commande ci-dessous j'ai eu d'erreur ci-dessous.
Changer de Groupe et l'Autorisation pour docker.prise
Vérifier ci-dessous en utilisant le panneau de commande
chmod 0777 /home/huginn/mysql-data
c'est ma solution.
sudo chmod 666 /var/run/docker.chaussette
cela m'a aidé alors que j'étais à avoir d'erreur, même de la session dans le menu fixe
Mais maintenant cela fonctionne complètement bien dans mon système.