1

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

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

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

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 - 确保我们拥有我们需要的所有索引 30/03/2016 13:58:12.661 [localhost-startStop-1]

错误 com.seyren.mongo.MongoStore - 引导 Mongo 索引时失败。如果您遇到了这个问题,那么您可能有两个检查名称相同并且违反了我们尝试添加的索引。请通过删除冲突来纠正问题。如果有其他问题,请在 Github 上告诉我们!

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

我在这里想念什么?

编辑

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

4

2 回答 2

3

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

于 2016-03-30T15:08:04.860 回答
0

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

于 2016-04-01T09:31:14.700 回答