Не удается подключиться к mon go db, который находится внутри контейнера docker - PullRequest
0 голосов
/ 04 августа 2020

У меня есть демонстрационное приложение Node JS, которое я хочу подключить к базе данных Mon go. Мой код находится на сервере, который не поддерживает Mon go, поэтому я пытаюсь запустить его из контейнера 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);
});

Кто-нибудь может посоветовать, что я делаю не так? Спасибо!

Примечание: я хочу запускать только БД внутри контейнера, но не часть узла.

...