52

I'm running a Docker container on MacOS that starts a Postgres server and MongoDB server as follows:

docker run -p 80:80 -p 27017:27017 dockertest
 * Starting PostgreSQL 9.3 database server
  ...done.
 * Starting database mongodb
  ...done.

The output shows that the MongoDB server is started correctly. Then I lookup the IP of the VM in which the container is running, like this:

docker-machine ls
NAME      ACTIVE   DRIVER       STATE     URL                         SWARM   DOCKER    ERRORS
default   *        virtualbox   Running   tcp://192.168.99.100:2376           v1.11.2

The ports seem to be mapped:

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

However, when I want to connect to the MongoDB in another terminal window, using

mongo 192.168.99.100:27017

I get the following error:

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

I already had a look at similar questions (e.g., Unable to connect to mongoDB running in docker container) but the proposed solution does not seem to work.

3
  • Make sure that mongo container is mapped to port 27017. Try docker ps -a and inspect the port mapping Commented Jun 5, 2016 at 16:59
  • I did that, added the output of "docker ps" to the question. Commented Jun 5, 2016 at 17:02
  • ssh into the container and check if the mongo process is running. Commented Jun 6, 2016 at 1:17

1 Answer 1

23

The problem was not related to Docker, but to the bindip in the configuration of MongoDB. See e.g., mongodb.conf bind_ip = 127.0.0.1 does not work but 0.0.0.0 works

Sign up to request clarification or add additional context in comments.

1 Comment

This exposes the db and it should be password protected then or use an ssh tunnel

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.