@Skellord

Почему нет доступа к MongoDB из докер контейнера?

Всем привет. Я пытаюсь подключиться из контейнерного node js приложения к локальной mongodb. Однако при подключении возникает ошибка (рис 1). Сервис бд запущен, и я могу к нему подключиться (рис 2). Для старта контейнера использую вот такой конфиг (рис 3). Замечу, что на windows этот конфиг работает исправно, проблемы возникли на ubuntu lts.
624446f9678cd275155899.png
624447001b2f2412435843.png
62444706e0997424433659.png
  • Вопрос задан
  • 398 просмотров
Пригласить эксперта
Ответы на вопрос 2
leahch
@leahch Куратор тега Linux
3D специалист. Dолго, Dорого, Dерьмово.
Пробрасывать порт нужно 27017, а не 5000!
....
     ports:
        - '27017:27017'
....

PS. И не надо картинки постить. Копируйте текст в теги code, это так просто. Из картинок его не выдрать, а набирать - лень! Я вот поэтому вообще отвечать не хотел...
Ответ написан
karabanov
@karabanov Куратор тега Linux
Системный администратор
Дело в том, что у каждого контейнера внутри свой loopback интерфейс с IP 127.0.0.1

Есть два пути, чтобы добиться желаемого.

Первый, убрать изоляцию с сети (network_mode: host), тогда всё просто заработает, но так делать не надо потому что на проде тебе никто не позволит так делать.

Второй, надо заставить монгу слушать либо на 0.0.0.0 (то есть на всех интерфейсах) и подключаться к ней из контейнера по IP шлюза (его можно посмотреть в выводе docker inspect <container_name>), либо заставить монгу слушать именно на одном IP который является шлюзом для контейнера.

PS
И да, скриншоты текста это и правда моветон - не надо так.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
25 апр. 2024, в 12:20
15000 руб./за проект
25 апр. 2024, в 12:08
300 руб./за проект
25 апр. 2024, в 11:49
25000 руб./за проект