[英]connect robomongo to mongoDB docker container
我正在使用docker-compose运行NodeJS
应用程序。 一切正常,我可以通过连接到容器内的 Mongo 来查看我的所有数据。 但是当我连接到RoboMongo 时,我看不到任何数据。
我该如何处理这个问题?
还有另一种方法。 你可以
docker ps
应该会显示你的 MongoDB 容器。docker inspect <mongo container id>
将打印出有关该容器的完整信息。 最后查找IPAddress
,它将为您提供容器的本地 IP。另一个旁注:确保您没有以任何方式公开您的 mongodb 服务端口(无论是 Dockerfile 还是 docker-compose.yml),因为这将使您的数据库可以从任何地方公开访问。 假设您没有为该服务设置用户名/密码,您很快就会被扫描和入侵。
最简单的方法是启用转发 Mongo 容器本身,这是我的 docker-compose 的样子。
mongo:
image: mongo
restart: always
ports:
- 27017:27017
您应该在 docker 容器内建立到 MongoDB 的 Robomongo SSH 隧道连接。 首先,您应该在 docker 容器中安装一个 ssh 服务器。
https://docs.docker.com/engine/examples/running_ssh_service/
之后,您应该在 Robomongo 中配置您的连接。 在“连接设置”中有 Robomongo 连接的配置选项卡。
转到“SSH”选项卡并配置与 docker 容器的 SSH 连接。 之后转到“连接”选项卡并配置与 MongoDB 的连接,就好像它在 localhost 范围内一样。
我面临着不同的问题。 我在本地安装了 MongoDB。 因此,当 docker 上的 MongoDB 运行时,它与我主机上运行的 MongoDB 发生冲突。 我已经使用brew
安装了它。
所以,我跑了
brew services stop mongodb-community
然后我重新启动了 Robo3t。 我看到在 docker 上运行的 MongoDB 中创建的数据库。
瞧!
请注意,也许您将无法使用 ssh,因为这只是 mongo 和 robomongo 之间不兼容的问题。
'Robomongo v8.5 及更低版本不支持 MongoDB 3'。 它与 docker 无关。
在您的 docker-compose 文件中,您可以向主机公开一个端口。
例如,下面的代码会将机器内部的 27017 端口暴露给主机中的 27018 端口。
app:
image: node
volumes:
- /app
ports:
- "27018:27017"
然后,如果您安装了docker-machine并且您的机器是default ,您可以在终端中执行以下操作:
docker-machine ip default
它将为您提供主机的 IP,例如192.168.2.3 。 您的数据库(主机)的地址将是192.168.2.3和端口27018 。
如果您的 docker 机器不是虚拟机而是您的操作系统,那么您的数据库地址将是localhost和端口27018 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.