【发布时间】:2017-06-02 09:02:36
【问题描述】:
我有 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 个单独的容器时,它们将不再相互通信(为什么?)。网上有很多关于这样做的教程with 或without docker-compose。但他们都使用--link。这是a deprecated legacy feature of Docker。所以我不想走那条路。 2017 年要走什么路,在 2 个 docker 容器之间建立这种联系?
【问题讨论】:
-
Docker 文档将"Communication between containers" 作为一般网络这个更大主题中的一个主题。
标签: node.js mongodb docker docker-compose dockerfile