web-dev-qa-db-fra.com

Comment se connecter à MongoDB s'exécutant dans le conteneur Docker?

J'exécute un conteneur Docker sur MacOS qui démarre un serveur Postgres et un 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 montre que le serveur MongoDB est démarré correctement. Ensuite, je cherche l'adresse IP du VM dans lequel le conteneur est en cours d'exécution, comme suit:

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 cartographiés:

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 à MongoDB dans une autre fenêtre de terminal, en utilisant

mongo 192.168.99.100:27017

Je reçois 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à examiné des questions similaires (par exemple, Impossible de se connecter à mongoDB s'exécutant dans un conteneur docker ), mais la solution proposée ne semble pas fonctionner.

25
MaVe

Le problème n'était pas lié à Docker, mais au 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 fonctionne

7
MaVe