将Web应用程序链接到Docker中的mongoDB

我是新来的Docker,我需要帮助build立我的networking应用程序。

所以我可以通过运行docker run -d --name mongo1 mongo来启动我的mongo容器并运行 – 这也是最新的版本。

然后启动与运行docker run -it --link mongo1:mongo --name webapp1 webapp链接mongoDB的Web应用程序docker run -it --link mongo1:mongo --name webapp1 webapp

然后在构build时Error: connect ECONNREFUSED 127.0.0.1:27017

这是应该暴露端口的构build:

 FROM node:latest RUN mkdir -p /webapp /home/nodejs && \ groupadd -r nodejs && \ useradd -r -g nodejs -d /home/nodejs -s /sbin/nologin nodejs && \ chown -R nodejs:nodejs /home/nodejs WORKDIR /webapp COPY package.json typings.json /webapp/ RUN npm install COPY . /webapp RUN chown -R nodejs:nodejs /webapp USER nodejs EXPOSE 3000 EXPOSE 27017 CMD [ "npm", "start" ] 

我错过了什么?

编辑:这可能是有用的,除了cml.co的答案: http ://www.ifdattic.com/how-to-mongodb-nodejs-docker/

您的nodejs应用程序应该使用mongo:27017连接到mongodb(因为您将mongo设置为容器内的mongodb别名--link mongo1:mongo ),而不是localhost:27017都不是127.0.0.1:27017

所以,检查MongoDB的连接url。

顺便说一下,暴露27017端口似乎没有必要在webapp容器