MongoDB,Docker,Meteor:拒绝连接

时间:2015-03-04 20:21:03

标签: mongodb meteor connection docker

如果我运行“流星”,流星的效果非常好。如果我设置MongoDB并运行Meteor并将MONGO_URL设置为“mongodb://127.0.0.1:27017 / meteor”,那么它也可以完美运行。但是,如果我运行一个Docker容器在同一台机器上调用与上面设置的MONGO_URL完全相同的Meteor文件,那么我得到错误:“异步函数回调中的异常:错误:无法连接到[127.0.0.1: 27017]”。 Logic会说Docker的引入导致了这个问题。因此,我必须做些什么来专门允许Meteor从容器内部调用MongoDB - 例如MongoDB端口等附加的东西。

Dockerfile是:

FROM ubuntu:14.04 

MAINTAINER Me "me@me.com" 

RUN apt-get update -y && apt-get install --no-install-recommends -y -q chrpath libfreetype6 libfreetype6-dev libssl-dev libfontconfig1 

RUN apt-get install --no-install-recommends -y -q build-essential ca-certificates curl git gcc make nano python 

ENV PATH /bin:/usr/local/sbin 

RUN curl install.meteor.com | sh 

ENV ROOT_URL 127.0.0.1 
ENV PORT 3000 
ENV MONGO_URL mongodb://127.0.0.1:27017/meteor 

EXPOSE 3000 

CMD [ "meteor" ] 

RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 

使用以下方法调用Meteor:

docker run --name meteor-dev -it -p 3000:3000 -v /machine/meteor:/opt/meteor -w /opt/meteor meteor-dev 

1 个答案:

答案 0 :(得分:4)

当您运行容器时,它会创建自己的网络,该网络与主机网络隔离。 因此,当您使用“mongodb://127.0.0.1:27017 / meteor连接到Mongo时,它会在容器内搜索MongoDB。

而不是使用127.0.0.1使用主机IP地址或主机名。

或者,如果您的MongoDB从容器运行,请创建一个链接并使用该链接启动meteor容器。希望这有帮助