J'ai rencontré un problème similaire, qui est un problème d'autorisation et la cause de ce problème est que le démon / serveur Docker s'exécute toujours en tant root
qu'utilisateur et souhaite que vous préfacriez toujours la commande docker avec sudo
.
Le démon Docker se lie à un socket Unix au lieu d'un port TCP. Par défaut, le socket Unix appartient à l'utilisateur root
et les autres utilisateurs ne peuvent y accéder qu'en utilisantsudo
.
Pour résoudre ce problème, voici ce qui a fonctionné pour moi:
Tout d'abord, vérifiez si vous avez déjà créé un groupe de dockers:
cat /etc/group
Si vous ne trouvez pas docker
dans la liste qui s'affiche, vous devrez en créer une:
sudo groupadd docker
Ensuite, confirmez votre user
et votre en group
utilisant la commande ci-dessous:
cat /etc/group
Faites défiler pour voir le groupe pour le menu fixe. Il devrait être de ce format
docker:x:140:promisepreston
où docker
est mon group
et promisepreston
est monuser
Nous pouvons maintenant ajouter votre utilisateur au groupe Docker
Pour les fichiers de conteneur Docker uniquement:
Copiez et exécutez la commande ci-dessous dans votre terminal exactement comme elle est indiquée sans la modifier de toute façon, quelle que soit l'image / le conteneur / la commande du docker que vous souhaitez exécuter ou que vous essayez d'exécuter ou qui cause le problème d'autorisation:
sudo usermod -aG docker $USER
Après avoir exécuté la commande ci-dessus, vous devrez vous déconnecter et vous reconnecter afin que votre appartenance au groupe soit réévaluée. Cependant, sous Linux, vous pouvez également exécuter la commande suivante ci-dessous pour activer les modifications apportées aux groupes ( Copiez et exécutez la commande ci-dessous dans votre terminal exactement comme elle est indiquée sans la modifier de toute façon, quelle que soit l'image / conteneur / commande du docker qui vous souhaitez exécuter ou essayez d'exécuter ou est en train de casse le problème d'autorisation ):
newgrp docker
Vous pouvez maintenant vérifier que vous pouvez exécuter des commandes docker sans autorisations sudo, en exécutant à nouveau la commande à l'origine du problème d'autorisations, par exemple ( remplacez my-command
par le nom de votre image / conteneur / commande ):
docker run my-command
Pour les fichiers Docker et du système de fichiers local:
Si vous disposez d'une copie des fichiers sur votre système de fichiers local, vous pouvez modifier la propriété du répertoire d'application dans lequel les fichiers d'application sont stockés, en utilisant ce format:
sudo chown <your_user>:<your_group> -R my-app-directory/
Donc dans mon cas ce sera:
sudo chown promisepreston:docker -R my-app-directory/
Remarque: veuillez exécuter cette commande dans le répertoire parent contenant le répertoire de l'application.
C'est tout.
J'espère que ça aide