Comment se connecter à MongoDB en cours d'exécution dans un conteneur Docker?
Je suis à court d'un conteneur Docker sur MacOS qui démarre un serveur Postgres et serveur MongoDB comme suit:
docker run -p 80:80 -p 27017:27017 dockertest
* Starting PostgreSQL 9.3 database server
...done.
* Starting database mongodb
...done.
La sortie indique que le serveur MongoDB est démarré correctement. Alors je recherche l'adresse IP de la machine virtuelle dans lequel le conteneur est en cours d'exécution, comme ceci:
docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS
default * virtualbox Running tcp://192.168.99.100:2376 v1.11.2
Les ports semblent être mappé:
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
39e5198e4693 dockertest "/bin/sh -c 'service " 3 minutes ago Up 3 minutes 0.0.0.0:80->80/tcp, 0.0.0.0:27017->27017/tcp drunk_nobel
Cependant, lorsque je veux me connecter à la MongoDB dans une autre fenêtre du terminal, à l'aide de
mongo 192.168.99.100:27017
J'obtiens l'erreur suivante:
MongoDB shell version: 2.6.4
connecting to: 192.168.99.100:27017/test
2016-06-05T18:48:19.050+0200 warning: Failed to connect to 192.168.99.100:27017, reason: errno:61 Connection refused
2016-06-05T18:48:19.052+0200 Error: couldn't connect to server 192.168.99.100:27017 (192.168.99.100), connection attempt failed at src/mongo/shell/mongo.js:148
exception: connect failed
J'ai déjà eu un coup d'oeil à des questions similaires (par exemple, Impossible de se connecter à mongoDB dans le conteneur docker), mais la solution proposée ne semble pas fonctionner.
source d'informationauteur MaVe
Vous devez vous connecter pour publier un commentaire.
Le problème n'était pas lié à Docker, mais à la bindip dans la configuration de MongoDB. Voir, par exemple, mongodb.conf bind_ip = 127.0.0.1 ne fonctionne pas, mais 0.0.0.0 œuvres