如何使我的nodeJS容器与我的mongoDB容器连接?

时间:2017-06-02 09:02:37

标签: node.js mongodb docker docker-compose dockerfile

我有2个相当简单的Docker容器,1个包含NodeJS应用程序,另一个只是一个MongoDB容器。

Dockerfile.nodeJS

FROM node:boron

ENV NODE_ENV production

# Create app directory
RUN mkdir -p /node/api-server
WORKDIR /node/api-server

# Install app dependencies
COPY /app-dir/package.json /node/api-server/
RUN npm install

# Bundle app source
COPY /app-dir /node/api-server

EXPOSE 3000
CMD [ "node", "." ]

Dockerfile.mongodb

FROM mongo:3.4.4

# Create database storage directory
VOLUME ["/data/db"]

# Define working directory.
WORKDIR /data

# Define default command.
CMD ["mongod"]

EXPOSE 27017

它们彼此独立工作,但是当我创建2个独立的容器时,它们将不再相互通信(为什么?)。在线有很多关于这样做的教程withwithout docker-compose。但他们都使用--link。这是a deprecated legacy feature of Docker。所以我不想走那条路。 2017年,在2个泊坞容器之间建立连接的方式是什么?

1 个答案:

答案 0 :(得分:0)

您可以创建特定网络

docker create network -d overlay boron_mongo

然后使用这样的命令启动两个容器

docker run --network=boron_mongo...

摘自

https://docs.docker.com/compose/networking/

首选方法是使用docker-compose

看看

配置默认网络

https://docs.docker.com/compose/networking/#specifying-custom-networks