2016-07-26 58 views
2

我是Docker的新手,需要幫助設置我的Web應用程序。在Docker中將Web應用程序鏈接到mongoDB

因此,我可以通過運行docker run -d --name mongo1 mongo來啓動並運行我的mongo容器 - 它也是最新版本。

然後,我通過運行docker run -it --link mongo1:mongo --name webapp1 webapp

連接的MongoDB啓動web應用程序然後它在生成錯誤的:Error: connect ECONNREFUSED 127.0.0.1:27017

這裏是一個應該被暴露的端口構建:

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/

回答

8

(如設置mongo作爲內部容器--link mongo1:mongo MongoDB的別名)你的應用程序的NodeJS應該連接使用mongo:27017到MongoDB的,而不是localhost:27017既不127.0.0.1:27017

因此,請檢查mongodb連接的URL。

順便說一句,暴露端口27017似乎不是必需的在webapp容器

相關問題