无法连接到dockerized MongoDB实例

时间:2016-03-30 12:19:45

标签: mongodb docker seyren

我尝试在本地运行Seyren实例,我想使用dockerized MongoDB image来实现。 在我拉出最新的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

但我接着遇到以下错误:

  

30/03/2016 13:58:02.643 [localhost-startStop-1]

     

INFO com.seyren.mongo.MongoStore - 确保我们拥有所需的所有指数30/03/2016 13:58:12.661 [localhost-startStop-1]

     

ERROR   com.seyren.mongo.MongoStore - 引导Mongo时失败   索引。 如果您遇到此问题,可能有两个问题   检查名称相同并违反我们尝试过的索引   添加。请通过删除冲突来解决问题。如果是的话   别的,请告诉我们Github!

     

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

引起

我该怎么办?

编辑

编译seyren jar文件时的事情。我确实有一个seyren数据库,它是在我的mongo实例中创建的...所以必须建立一个连接。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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