web-dev-qa-db-fra.com

connectez robomongo au conteneur de docker mongoDB

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?

13
migorman

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.

3
André Bonna

Il y a un autre moyen. Vous pouvez 

  1. SSH avec Robomongo sur votre serveur virtuel qui héberge vos applications de menu fixe (onglet SSH, cochez la case "Utiliser le tunnel SSH" et complétez les autres champs en conséquence)
  2. Maintenant ssh dans la même machine de votre terminal. 
  3. docker ps devrait vous montrer votre conteneur MongoDB.
  4. 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.
  5. Dans l'onglet "Connexion" de Robomongo, utilisez cette adresse IP de conteneur pour vous connecter.

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.

18
Maxim Zubarev

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
3
Pratyush

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.

1
migorman