在同一网络上运行docker"/>
如何在同一网络上运行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
发布评论