Задать вопрос
@Skellord

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

Всем привет. Я пытаюсь подключиться из контейнерного node js приложения к локальной mongodb. Однако при подключении возникает ошибка (рис 1). Сервис бд запущен, и я могу к нему подключиться (рис 2). Для старта контейнера использую вот такой конфиг (рис 3). Замечу, что на windows этот конфиг работает исправно, проблемы возникли на ubuntu lts.
624446f9678cd275155899.png
624447001b2f2412435843.png
62444706e0997424433659.png
  • Вопрос задан
  • 575 просмотров
Подписаться 1 Средний 3 комментария
Пригласить эксперта
Ответы на вопрос 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
И да, скриншоты текста это и правда моветон - не надо так.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
22 дек. 2024, в 20:40
10000 руб./за проект
22 дек. 2024, в 20:34
3000 руб./за проект
22 дек. 2024, в 20:12
10000 руб./за проект