admin管理员组

文章数量:814956

如何在同一网络上运行docker

我运行2个Docker容器。一种是mongodb容器。另一个是Node.js应用容器,它试图连接到该mongodb容器。

如果我在没有docker的node.js应用上通过“ npm run start”运行,它将运行良好。它仅使用“ mongodb:// localhost:27017 / myproject”连接到mongodb容器。

但是它在dockerized node.js应用程序上不起作用。 它确实连接到Mongo DB在“ mongoose.connect”方法上。

但是当我在编译后实际上连接到浏览器时,它说:

(node:32) UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'data' of undefined

似乎node.js容器连接到mongodb容器存在问题,因此无法获得任何内容,因此数据未定义。

我执行的步骤:

通过以下命令,我首先创建了mongodb容器:

sudo docker container run --name mymongodb --publish 27017:27017 -d mongo

然后,在node.js应用程序上,我简单地:

docker-compose build
docker-compose up

我的docker-compose.yml:

version: "2"
services:
  myapp:
    container_name: mycontainer
    restart: always
    build: .
    ports:
      - "3001:3001"
    network_mode: host

上面的错误是什么问题?

回答如下:

通常,我们不在开发人员上使用network_mode: host。默认情况下,docker-compose将为您的项目创建一个网络,并且所有容器都可以使用其容器名称进行通信。

本文标签: 如何在同一网络上运行docker