如何使我的nodejs容器与mongoDB容器连接



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

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个单独的容器时,它们将不再相互通信(为什么?(。在线有很多关于在有或没有Docker-Compose的情况下进行的教程。但是他们都使用--link。这是Docker的旧遗产功能。所以我不想走那条路。在2017年有什么路要走,在2个Docker容器之间建立这种连接?

您可以创建一个特定的网络

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/#specifieing-custom-networks

最新更新