无法连接到 dockerized MongoDB 实例



我尝试在本地运行一个Seyren实例,我想使用dockerized MongoDB映像来完成它。在我提取了最新的docker映像后,我运行它并暴露27017端口:

docker run --name mongodb -v /data/db:/data/db -p 27017:27017 -d mongo

接下来要做的是编译seyren jar文件并向其传递一些变量。docker.local映射到/etc/hosts 中docker工具箱的IP

java -jar seyren-1.3.0.jar GRAPHITE_URL=https://graphiteurl.io MONGO_URL=mongodb://docker.local:27017

但我随后出现了以下错误:

2016年3月30日13:58:02.643[localhost-startStop-1]

INFO com.seyren.mongo.MongoStore-确保我们拥有2016年3月30日13:58:12.661[localhost-startStop-1]所需的所有索引

错误com.seyren.mongo.MongoStore-启动mongo时失败索引如果你遇到了这个问题,你可能有两个名称相同且违反我们尝试过的索引的检查添加。请通过消除冲突来解决问题。如果是其他事情,请在Github上告诉我们!

com.mongodb.MongoTimeoutException:10000毫秒后超时,while正在等待与AnyServerSelector{}匹配的服务器。的客户端视图集群状态为{type=Unknown,servers=[{address=localhost:27017,type=未知,state=正在连接,exception={com.mongodb.MongoException$Network:打开socket},由{java.net.ConnectException:连接被拒绝}}]引起

我在这里想念什么?

编辑

当我编译seyren jar文件的时候。我确实有一个seyren数据库,它是在我的mongo实例中创建的。。。因此,必须建立一种联系。

据我所知,您正在Mac上使用docker工具箱。Docker工具箱不在本地主机中运行(它在VBox虚拟机的实例中运行)。您应该使用这台机器的IP,而不是localhost。您可以在终端中使用docker-machine env命令来获取它。DOCKER_HOSTenv变量的IP将是您的mongoDB实例主机的IP。

找到了解决方案。我不得不使用mongo:2.7图像,因为这是唯一可行的图像。

最新更新