Unable to connect to mongoDB running in docker container
If you are on a Mac and using Docker Machine, do the following:
1. Get the name of the VM running docker daemon $ docker-machine ls 2. Get the VM's IP info $ docker-machine env 3. Connect with the mongo client to the VM IP and the mongo mapped port $ mongo VM-IP:port
I was using port 27017 instead of 49155 (doh, port forwarding)
0.0.0.0:49155->27017/tcp
Thanks to ZeissS
If you specified the correct port and still not able to connect to mongodb running in docker (like me), make sure you are using the service name (or container name) in your connection URL, e.g. mongodb://mongodb_service:27017/mydb
, which is defined in your docker-compose.yml
:
services:
mongodb_service:
image: mongo
I was using the hostname
value and that's not the correct thing to do. You could verify this by looking at docker inspect mongodb_service
in the Aliases
section.
Assuming your mongodb is within a container, for other containers to connect to it, they all need to be on the same network.
To have mongodb and other containers (that want to connect it), create a new network using below command
docker network create --driver bridge my_bridge
Then run mongodb and other containers using the --net flag
docker run --net=my_bridge --name mongodb -p 27017:27017 mongodb
docker run --net=my_bridge --name my-service -p 7002:7002 my-service
Now you should be able to connect mongodb with given alias name from those containers
mongo --host "mongodb:27017"