首页 > 解决方案 > 无法连接到位于 docker 容器内的 mongo db

问题描述

我有一个想要连接到 Mongo 数据库的 Node JS 演示应用程序。我的代码在不支持 Mongo 的服务器上,所以我尝试从 docker 容器中运行它。当我运行该应用程序时,我收到有关与数据库连接的一些错误:

UnhandledPromiseRejectionWarning: MongoNetworkError: failed to connect to server [mongo:27017] on first connect [MongoNetworkError: getaddrinfo ENOTFOUND mongo mongo:27017]

带有数据库的容器已启动并正在运行:

[root@xxxxxx docker-node-mongo]# docker run -d -p 27017-27019:27017-27019 --name mongodb mongo:4.0.4^C0.0:27017-27019->27017-27019/tcp   mongodb


[root@xxxxxx docker-node-mongo]# [root@vps12219000 docker-node-mongo]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              
PORTS                                  NAMES
ccdf49525782        mongo:4.0.4         "docker-entrypoint.s   26 minutes ago      Up 26 
minutes       0.0.0.0:27017-27019->27017-27019/tcp   mongodb 

我正在像这样连接到数据库:

const mongoose = require('mongoose');
const DB_URI = 'mongodb://mongo:27017/toDoApp';

mongoose.connect(DB_URI).then(() => {
  console.log('Listening on port: ' + PORT);
  app.listen(PORT);
});

有人可以告诉我我做错了什么吗?谢谢!

注意:我只想在容器内运行数据库,而不是节点部分。

标签: node.jsmongodbdocker

解决方案


推荐阅读