GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment exécuter Docker en tant qu'utilisateur non root sous Linux

Installer Docker sur Ubuntu C'est très facile! N'importe qui, même les débutants, peut l'installer en 15 minutes. Après avoir installé Docker, j'ai remarqué que je ne pouvais pas effectuer la plupart des opérations Docker en tant qu'utilisateur normal. Je devais exécuter Docker en tant qu'utilisateur "root" ou avec l'autorisation "sudo" à chaque fois. Chaque fois que j'essaie d'exécuter Docker en tant qu'utilisateur non root ou sans autorisation sudo, j'obtiens l'erreur suivante :

Autorisation refusée lors de la tentative de connexion au socket du démon Docker sur unix:///var/run/docker.sock :obtenez http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version :composez unix /var/run/docker.sock :connexion :autorisation refusée

Par exemple, je voulais vérifier la version de Docker en tant qu'utilisateur normal à l'aide de la commande :

Version $ docker

Et j'obtiens ce message d'erreur :

Client :Docker Engine - CommunityVersion :19.03.8API version :1.40Go version :go1.12.17Git commit :afacb8b7f0Built :Wed Mar 11 01:25:46 2020OS/Arch :linux/amd64Experimental :falseObtenir l'autorisation refusée lors de la tentative de connexion au socket du démon Docker à unix:///var/run/docker.sock :obtenez http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version :composez unix /var/run/ docker.sock :connexion :autorisation refusée 

Mais quand j'exécute la même commande avec l'autorisation sudo ;

Version docker $ sudo

Il affiche tous les détails de la version Docker actuellement installée, comme indiqué dans la sortie ci-dessous.

Client :Docker Engine - Community Version :19.03.8 Version API :1.40 Go version :go1.12.17 Git commit :afacb8b7f0 Construit :Wed Mar 11 01:25:46 2020 OS/Arch :linux/amd64 Experimental :falseServer :Docker Engine - Community Engine :Version :19.03.8 Version API :1.40 (version minimale 1.12) Version Go :go1.12.17 Commit Git :afacb8b7f0 Construit :Mer 11 mars 01:24:19 2020 OS/Arch :linux/amd64 Expérimental :false containerd :Version :1.2.13 GitCommit :7ad184331fa3e55e52b890ea95e65ba581ae3429 runc :Version :1.0.0-rc10 GitCommit :dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init8 :Version :0.18
 

Après avoir cherché dans la page de documentation de Docker, j'ai réalisé que le démon Docker se lie à un socket Unix au lieu d'un port TCP par défaut. Puisque ce socket Unix appartient à la racine user, le démon Docker ne fonctionnera qu'en tant qu'utilisateur root. Par conséquent, les utilisateurs normaux ne peuvent pas exécuter la plupart des commandes Docker.

Si vous souhaitez exécuter Docker en tant qu'utilisateur non root sous Linux, vous devez suivre les étapes suivantes. J'ai testé cela sur le serveur Ubuntu 18.04 et cela a très bien fonctionné ! Cela devrait également fonctionner sur d'autres distributions Linux.

Exécuter Docker en tant qu'utilisateur non root sous Linux

Pour corriger l'erreur d'autorisation Docker refusée et utiliser Docker en tant qu'utilisateur non root, créez un groupe appelé "docker" avec la commande suivante :

$ sudo groupadd docker

Ensuite, ajoutez votre utilisateur au docker groupe :

$ sudo usermod -aG docker $USER

Après avoir ajouté l'utilisateur au groupe Docker, déconnectez-vous et reconnectez-vous pour que les modifications prennent effet.

Vous pouvez également exécuter la commande suivante pour appliquer les modifications aux groupes :

$ docker newgrp

Désormais, l'utilisateur normal (non root) peut utiliser Docker sans les autorisations sudo.

Permettez-moi d'exécuter les commandes suivantes en tant qu'utilisateur normal :

Version $ docker
$ docker lance hello-world

Exemple de résultat :

Voir? Je peux maintenant exécuter ces deux commandes Docker sans autorisation sudo.

Juste au cas où vous auriez déjà exécuté quelques commandes Docker avec l'autorisation "sudo" avant d'ajouter votre utilisateur au groupe Docker, vous verrez probablement une erreur comme ci-dessous.

ATTENTION :Erreur lors du chargement du fichier de configuration :/home/user/.docker/config.json -stat /home/user/.docker/config.json :autorisation refusée

Le message d'erreur ci-dessus indique que votre ~/.docker/ Le répertoire a été créé avec des autorisations incorrectes en raison des commandes 'sudo'. Pour résoudre ce problème, modifiez la propriété et les autorisations de ce répertoire à l'aide des commandes suivantes :

$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R
$ sudo chmod g+rwx "$HOME/.docker" -R

Déconnectez-vous et reconnectez-vous pour que cela prenne effet.

Si cela ne résout toujours pas le problème, vous devrez peut-être supprimer votre ~/.docker/ annuaire. Il sera recréé automatiquement, mais vous perdrez tous les paramètres personnalisés, s'il y en a.

J'espère que cela vous aidera.


Docker
  1. Comment vérifier la version de Redhat

  2. Comment exécuter un programme dans un conteneur Docker ?

  3. Comment exécuter rsyslog en tant qu'utilisateur non root dans CentOS/RHEL 7

  4. Exécutez Docker en tant qu'utilisateur non root

  5. Android - Comment rooter un Samsung S6 avec Linux ?

Comment installer Docker CE dans Linux Mint 20

Comment changer d'utilisateur sous Linux

Comment exécuter une application .NET dans Docker

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment exécuter des conteneurs Docker