【问题标题】:How can I make my nodeJS container connect with my mongoDB container?如何让我的 nodeJS 容器与我的 mongoDB 容器连接?
【发布时间】: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 个单独的容器时,它们将不再相互通信(为什么?)。网上有很多关于这样做的教程withwithout docker-compose。但他们都使用--link。这是a deprecated legacy feature of Docker。所以我不想走那条路。 2017 年要走什么路,在 2 个 docker 容器之间建立这种联系?

【问题讨论】:

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


【解决方案1】:

您可以创建特定的网络

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

【讨论】:

    猜你喜欢
    • 2017-10-13
    • 2021-11-16
    • 1970-01-01
    • 1970-01-01
    • 2019-10-16
    • 2022-11-11
    • 1970-01-01
    • 2017-08-10
    • 2021-01-09
    相关资源
    最近更新 更多