Не удалось подключиться к mongoDB, работающему в контейнере докеров

Следуя этому примеру: https://docs.docker.com/engine/examples/mongodb/

При попытке подключиться к mongoDB с помощью: mongo ip:27017 (где ip - имя от boot2docker ip) + номер порта из docker ps:

27017/TCP
или с -P
0.0.0.0:49155- > 27017/TCP

В любом случае я получаю следующие ошибки:

предупреждение: не удалось подключиться к ip: 27017, причина: errno: 61 Connection отказался

Ошибка: не удалось подключиться к серверу ip: 27017 (ip), попытка подключения failed at src/mongo/shell/mongo.js: 148 exception: connect failed

Ответ 1

Я использовал порт 27017 вместо 49155 (doh, переадресация портов)

0.0.0.0:49155- > 27017/TCP

Благодаря ZeissS

Ответ 2

Если вы указали правильный порт и все еще не можете подключиться к mongodb, работающему в докере (например, я), убедитесь, что вы используете имя службы (или имя контейнера) в URL вашего соединения, например. mongodb://mongodb_service:27017/mydb, который определен в вашем docker-compose.yml:

services:
  mongodb_service:
    image: mongo

Я использовал значение hostname, и это не правильная вещь. Вы можете проверить это, посмотрев docker inspect mongodb_service в разделе Aliases.

Ответ 3

Если вы находитесь на Mac и используете Docker Machine, выполните следующие действия:

1. Get the name of the VM running docker daemon
$ docker-machine ls

2. Get the VM IP info
$ docker-machine env 

3. Connect with the mongo client to the VM IP and the mongo mapped port
$ mongo VM-IP:port