如何使我的nodeJS容器与我的mongoDB容器连接?
问题描述:
我有两个相当简单的Docker容器,其中一个包含一个NodeJS应用程序,另一个只是一个MongoDB容器。如何使我的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 create network -d overlay boron_mongo
,然后你这样的命令来启动这两个容器
docker run --network=boron_mongo...
提取物
https://docs.docker.com/compose/networking/
优选的方法是使用搬运工-撰写
看一看
配置缺省网络
https://docs.docker.com/compose/networking/#specifying-custom-networks
的泊坞文档中有[ “容器之间的通信”](HTTPS:/ /docs.docker.com/engine/userguide/networking/default_network/container-communication/#communication-between-containers)作为一般网络中较大主题的话题。 –