我怎样才能让我的nodeJS容器连接到我的mongoDB容器?

我有两个相当简单的Docker容器,一个包含一个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 

它们都是独立工作的,但是当我创build了两个独立的容器时,它们将不再彼此通信(为什么?)。 在线有很多关于使用或不使用 docker-compose的教程。 但他们都使用 – --link 。 哪一个是Docker的旧版function 。 所以我不想走这条路。 在2017年,要在2个docker集装箱之间build立这种连接,到底要走多远?

你可以创build一个特定的networking

docker create network -d overlay boron_mongo

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

docker run --network=boron_mongo...

从…中提取

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

首选的方法是使用docker-compose

看一下

configuration默认networking

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