2016-03-30 100 views
1

我尝试在本地运行Seyren实例,我想使用dockerized MongoDB image来实现它。 后,我把最新的泊坞窗的形象,我运行它,并露出27017端口:无法连接到dockerized MongoDB实例

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

接下来要做的就是编译seyren jar文件并将其传递一些变量。 docker.local被映射到泊坞窗工具箱的IP在/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 [本地主机,startStop- 1]

信息com.seyren.mongo.MongoStore - 确保我们有我们需要30/03/2016 13的所有索引:58:12.661 [本地主机-startStop-1]

ERROR com.seyren .mongo.MongoSt矿石 - 引导Mongo 索引时失败。 如果你遇到了这个问题,可能有两个 检查被命名为相同,并且违反了我们试图用 添加的索引。请通过消除冲突来纠正问题。如果是 ,请在Github上告知我们!

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

我该怎么做我想在这里?

编辑

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

+0

你开始真正在* localhost *上监听的MongoDB实例吗?更重要的是:你使用Docker Toolbox还是类似的?请添加'netstat -lntp |的输出grep 27017'(或者'lsof -n -i:27017 | grep LISTEN',如果你在Mac上)。 – ThatsNinja

+0

地狱。我认为你指出了主要问题。我确实使用docker工具箱。 当我在MAC(我使用docker工具箱)中运行命令时,我什么都没有。在我的VM(Ubuntu 14.04)中,端口正在侦听。 尽管如此,即使端口正在侦听(VM),尽管在mongo实例中创建了seyren数据库,但它仍不起作用。另外,如何连接Mac中的mongo实例(工具箱) – Mornor

+0

您必须使用运行docker主机的vm的ip。您可以通过运行“docker-machine ip default”来查找IP。 mongodb将在该端口上监听端口27017 IP – lamirap

回答

3

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

+0

'docker-machine ip default'将仅返回默认Docker Toolbox Docker Machine实例的IP地址。 – ThatsNinja

+0

我确实已经这样做了,但我仍然有同样的错误('无法引导Mongo索引和'连接被拒绝') – Mornor

+1

这是seyren问题。你可以在这里跟踪https://github.com/scobal/seyren/issues/354 – Cortwave

0

找到解决方案。我必须使用mongo:2.7,因为这是唯一可行的。