J'utilise une application NodeJS
avec docker-compose . Tout fonctionne bien et je peux voir toutes mes données en me connectant à Mongo à l'intérieur du conteneur. Mais lorsque je me connecte à RoboMongo je ne vois aucune donnée.
Comment puis-je régler ce problème?
Vous devez établir une connexion de tunnel Robomongo SSH avec MongoDB à l’intérieur du conteneur de menu fixe. Tout d’abord, vous devez installer un serveur ssh dans votre conteneur Docker.
https://docs.docker.com/engine/examples/running_ssh_service/
Après cela, vous devez configurer votre connexion dans Robomongo . Dans "Paramètres de connexion", vous trouverez des onglets de configuration de votre connexion Robomongo.
Allez sur l'onglet "SSH" et configurez votre connexion SSH au conteneur de menu fixe. Après cela, allez dans l'onglet "Connexion" et configurez votre connexion à MongoDB comme si elle était dans la portée de l'hôte local.
Il y a un autre moyen. Vous pouvez
docker ps
devrait vous montrer votre conteneur MongoDB.docker inspect <mongo container id>
imprimera des informations complètes sur ce conteneur. Recherchez IPAddress
à la fin, cela vous donnera l’adresse IP locale du conteneur.Autre remarque: Assurez-vous de ne pas exposer vos ports de service mongodb de quelque manière que ce soit (ni Dockerfile, ni docker-compose.yml), car cela rendra votre base de données accessible de partout. En supposant que vous n’ayez pas configuré de nom d’utilisateur/mot de passe pour ce service, vous serez analysé et piraté bientôt.
Le moyen le plus simple est de permettre le transfert du conteneur Mongo lui-même. Voici à quoi ressemble ma composition de docker.
mongo:
image: mongo
restart: always
ports:
- 27017:27017
Veuillez noter que vous ne pourrez peut-être pas utiliser ssh car il s'agissait simplement d'un problème d'incompatibilité entre mongo et robomongo.
'Robomongo version 8.5 et antérieure ne prend pas en charge MongoDB 3'. Cela n'a rien à voir avec docker.