J'ai une simple application Nodejs avec MongoDB à l'aide de Docker (Docker-Compose). Tout fonctionne bien, mais le volume monté de Mongo est créé sous la propriété de l'utilisateur 999.
Docker est exécuté sous la permission d'un utilisateur non root. P>
Voici les informations de volume monté: p> voici mon fichier docker-compose.yml: p> la prochaine fois lors de la prochaine exécution: Docker-compose -d --Build em> lancera cette erreur: p> erreur: Impossible de se connecter à Docker Daemon sur http + Docker: // localunixsocket - est-ce en cours d'exécution? em> p> Si la propriété du volume monté est modifiée, tout est de retour à la normale jusqu'à la prochaine fois. P> Je mentionne que j'ai déjà utilisé ce type de configuration avec MySQL et Redis, mais je jamais rencontré ce problème. P> Des idées sur la façon de le réparer? p> merci! p> p>
3 Réponses :
sur des images basées sur Ubuntu, Ce que cela pourrait signifier, c'est que le répertoire que vous montage peut être un chemin réseau ou peut être copié à partir d'une autre machine, qui conduisent à l'utilisateur étant inconnu sur votre machine, conduisant à un système attribué à un système. P>
Notez que vous pouvez utiliser la syntaxe 999 code> sera le premier système possible attribué à UID pour les utilisateurs inconnus, avec d'autres identifiants comptant. P>
add --chown x: y code> pour ajouter des fichiers sous un utilisateur avec un identifiant utilisateur défini. P>
Établissement de la réponse précédente, pour éviter les problèmes comme celui-ci à l'avenir, vous pouvez envisager d'utiliser des volumes gérés plutôt que d'un répertoire spécifique de votre système de fichiers. Garde tous ces fichiers étranges hors de la vue et évite les problèmes d'autorisations étranges comme celui-ci. Voici mon configuration de Docker Compose pour Mongo: P>
Cela crée également des problèmes dans la gestion de ces fichiers sur l'hôte, tels que la sauvegarde de ces fichiers en tant qu'utilisateur non privilégié, ce qui pourrait être quelque chose que l'on veut sur un PC de développeur.
Voici la solution actuelle ! p> Vous pouvez: p> ou, dans docker-composition, voici un exemple minimal: P> mkdir data
docker-compose up