Lorsque vous travaillez avec Docker, vous pouvez rencontrer un cas où la commande renvoie une erreur « autorisation refusée ». Cette erreur se produit lorsque vous tentez d'exécuter Docker sans autorisations suffisantes pour la commande.
Docker nécessite les autorisations sudo ou root pour exécuter les commandes associées par défaut. Tenter d'exécuter une commande sans les privilèges requis conduit à la fameuse erreur « autorisation refusée ».
Ce didacticiel fournit les différentes méthodes et techniques que vous pouvez utiliser pour corriger l'erreur « autorisation refusée » lors de la tentative d'exécution des commandes Docker.
Gardez à l’esprit qu’il ne couvre pas le processus d’exécution de Docker dans un environnement sans racine. Vous pouvez consulter notre tutoriel sur Docker sans racine dans la ressource suivante :
Exigences:
Comme vous pouvez le deviner, pour suivre cet article, vous devez disposer des éléments suivants :
- Docker version 20.0 et supérieure
- Autorisations Sudo ou root sur le système hôte
Qu'est-ce que l'erreur « Autorisation refusée » ?
Lorsque l'erreur « autorisation refusée » se produit dans Docker, cela signifie que le système hôte ne peut pas établir de communication avec le démon Docker en raison d'autorisations insuffisantes. Un exemple est présenté ci-dessous :
$ exécution du docker -il boîte occupée merde
Si vous rencontrez l'erreur indiquée, vous pouvez utiliser certaines des méthodes suivantes pour savoir comment la corriger.
Méthode 1 : exécuter le Docker en tant que root
La première et la plus évidente méthode pour résoudre l’erreur « autorisation refusée » de Docker consiste à utiliser la commande « sudo ». Si vous disposez des privilèges sudo, vous pouvez résoudre ce problème en exécutant la commande associée à l'aide de sudo.
Par exemple, pour corriger ladite erreur, nous pouvons ajouter sudo avant la commande comme suit :
$ sudo exécution du docker -il boîte occupée merde
Comme vous pouvez le voir, Docker extrait avec succès les images requises et exécute le conteneur.
Méthode 2 : redémarrer le démon Docker
Parfois, vous pouvez obtenir l'erreur « autorisation refusée » dans Docker si le moteur a un problème. Au lieu de rechercher manuellement le problème, vous pouvez tenter un redémarrage rapide du démon Docker pour le recharger.
Commencez par vérifier l'état du démon Docker comme suit :
$ docker systemctl statut docker
Une fois que vous vous êtes assuré que Docker est en cours d'exécution, redémarrez le service avec la commande suivante :
Cela devrait démarrer le démon Docker et résoudre tout problème potentiel qui pourrait vous empêcher d'exécuter une commande.
Méthode 3 : activer l’utilisateur non root
Une autre méthode que vous pouvez utiliser pour résoudre l'erreur « autorisation refusée » dans Docker consiste à autoriser les utilisateurs non root à exécuter les commandes Docker.
Pour activer cette méthode, connectez-vous au système hôte et créez un nouveau groupe pour Docker.
$ sudo groupeajouter -F docker
Ensuite, ajoutez n'importe quel utilisateur de votre choix au groupe Docker comme suit :
La commande précédente doit ajouter l'utilisateur Linuxhint au groupe Docker.
Enfin, appliquez les modifications du groupe à la session en cours à l'aide de la commande suivante :
$ nouveau docker grp
Une fois terminé, vous pouvez exécuter n'importe quelle commande Docker sans utiliser sudo pour aucun utilisateur du groupe Docker.
Méthode 4 : reconfigurer les autorisations Docker
La méthode suivante que vous pouvez utiliser consiste à réinitialiser les autorisations pour les sockets Docker. Commencez par modifier la propriété du socket Docker Unix en exécutant la commande suivante :
$ sudo chown racine: docker / était / courir / docker.sock
Ensuite, devenez propriétaire du répertoire Docker caché dans votre répertoire personnel à l'aide de la commande suivante :
Enfin, attribuez au groupe les autorisations de lecture et d'écriture sur le répertoire comme suit :
Les méthodes fournies doivent définir des autorisations suffisantes pour les fichiers et répertoires Docker essentiels.
Conclusion
Dans ce didacticiel, nous avons appris comment utiliser les quatre méthodes principales pour résoudre l'erreur Docker « autorisation refusée » lors de l'appel d'une commande Docker.