我尝试在本地运行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
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实例中创建的...所以必须建立一个连接。
答案 0 :(得分:3)
据我所知,你在Mac上使用的是docker工具箱。 Docker工具箱不在您的localhost中运行(它在VBox虚拟机的实例中运行)。你应该使用这台机器的IP而不是localhost。您可以在终端中使用docker-machine env
命令获取它。 DOCKER_HOST
env变量的IP将是您的mongoDB实例主机的IP。
答案 1 :(得分:0)
找到解决方案。我不得不使用mongo:2.7图像,因为这是唯一可行的图像。