подключение robomongo к контейнеру MongoDB docker
Я NodeJS
приложение docker-compose. Все работает нормально, и я могу видеть все свои данные, подключившись к Mongo внутри контейнера. Но когда я подключаюсь к RoboMongo Я не вижу никаких данных.
Как я могу справиться с этой проблемой?
5 ответов
вы должны сделать туннельное соединение Robomongo SSH с MongoDB внутри контейнера docker. Прежде всего, вы должны установить ssh-сервер внутри контейнера docker.
https://docs.docker.com/engine/examples/running_ssh_service/
после этого вы должны настроить соединение в Robomongo. Внутри "настройки подключения" есть вкладки конфигурации вашего подключения Robomongo.
перейдите на вкладку " SSH " и настройте SSH-соединение с контейнером docker. После этого перейдите на вкладку "подключение" и настройте соединение с MongoDB, как если бы оно было в области localhost.
есть другой способ. Ты можешь!--4-->
- SSH с Robomongo на ваш фактический виртуальный сервер, на котором размещаются ваши приложения docker (вкладка SSH, проверьте "использовать SSH туннель" и заполните другие поля соответственно)
- теперь ssh в ту же машину в вашем терминале.
-
docker ps
должен показать вам ваш контейнер MongoDB. -
docker inspect <mongo container id>
распечатает полную информацию об этом контейнере. ИщитеIPAddress
в конце концов, это даст вам локальный IP контейнера. - на вкладке "соединение" в Robomongo используйте этот IP-адрес контейнера для подключения.
еще один sidenote: убедитесь, что вы никоим образом не предоставляете свои порты службы mongodb (ни Dockerfile, ни docker-compose.yml), потому что это сделает вашу базу данных открыто доступной отовсюду. Предполагая, что вы не настроили имя пользователя / пароль для этой службы, вы будете отсканированы и взломаны скоро.
обратите внимание, что, возможно, вы не сможете использовать ssh, потому что это была просто проблема несовместимости между mongo и robomongo.
'Robomongo v8.5 и ниже не поддерживает MongoDB 3'. Это не имеет никакого отношения к докеру.
самый простой способ-включить пересылку самого контейнера Mongo, вот как выглядит мой docker-compose.
mongo:
image: mongo
restart: always
ports:
- 27017:27017
в файле docker-compose вы можете выставить порт к хозяину.
например, следующий код будет предоставлять порт 27017 внутри машины порту 27018 в Хосте.
app:
image: node
volumes:
- /app
ports:
- "27018:27017"
потом, если у вас есть докер-машина установлен и ваша машина по умолчанию, вы можете сделать в терминале :
docker-machine ip default
это даст вам IP вашего хоста, например 192.168.2.3. Адрес база данных (хост) будет 192.168.2.3 и порт 27018.
Если ваша машина docker не является виртуальной и является вашей ОС, адрес вашей базы данных будет localhost в и порт 27018.