Не удалось подключить SpringBootApplication к контейнеру mongo в Docker

  1. У меня запущен докер-контейнер с помощью следующей команды:

    docker run -p 27017: 27017 -d монго

Журналы Докера для справки.

  1. Затем я клонирую репозиторий github: https://github.com/springframeworkguru/spring-boot-mongodb.git
  2. Импортируйте проект в IntelliJ IDE, соберите его и запустите.

Журналы ошибок приложения SpringBoot здесь

Проблема: Я не могу подключиться к приложению mongo, запущенному в контейнере, из моего SpringBoot application, так как я получаю MongoSocketOpenException, как показано в журналах.

Any help is appreciated?

Docker version 18.03.0-ce, build 0520e24302

ОС: Windows 10

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
0
444
2

Ответы 2

Docker for win имеет некоторые проблемы с петлевыми интерфейсами.

https://blog.sixeyed.com/published-ports-on-windows-containers-dont-do-loopback/

Попробуйте запустить docker inspect и настроить приложение с адресом контейнера.

Спасибо, Джонатан, за ваш вклад. Я только начинаю работать с Docker, поэтому я новичок в этом. Не могли бы вы привести мне пример части конфигурации для моего приложения?

Chethan B 16.04.2018 02:14

Не могли бы вы ответить?

Chethan B 18.04.2018 20:22

@ChethanB В вашем приложении вам нужно изменить адрес хоста mongoDB на IP, который вам указывает docker inspect. Вам следует начать с более простых проверок, чтобы улучшить вашу отладку. Начните с простой команды telnet, проверяя, принимает ли ваш mongoDB соединение через этот порт. Например telnet localhost 27017.

Jonathan Beber 19.04.2018 20:10

Спасибо за ваш вклад. Я настроил адрес хоста своего приложения на IP-адрес контейнера докеров, как показано здесь. spring.data.mongodb.uri=mongodb://172.17.0.2:27017/test. Тем не менее, я столкнулся с той же проблемой. Я даже попробовал команду telnet, чтобы проверить, принимает ли MongoDB соединения. telnet localhost 27017 И здесь не повезло. Это проблема с конфигурацией контейнера?

Chethan B 19.04.2018 23:54

Итак, ваш контейнер не принимает соединение как localhost, попробуйте telnet 172.17.0.2 27017.

Jonathan Beber 20.04.2018 20:09
Connecting To 172.17.0.2...Could not open connection to the host, on port 27017: Connect failed Это тоже не принимает никаких подключений.
Chethan B 21.04.2018 20:34

Похоже, ваш контейнер не работает

Jonathan Beber 23.04.2018 16:19

Контейнер запущен. Я обязательно проверил запущенные контейнеры с помощью команды docker ps

Chethan B 24.04.2018 20:51

Я могу подключиться к контейнеру монго. Ошибка заключалась в том, что я получил IP-адрес контейнера mongo вместо IP-адреса контейнера докера. В любом случае спасибо за терпение. Ценить это.

Chethan B 24.04.2018 21:05

Проблема: Я пытался настроить приложение SpringBoot на IP-адрес контейнера mongo, который я получил из команды mongo inspect <mongo_container>, которая была неправильной.

Решение: Настроил мое приложение, используя IP-адрес докера, полученный docker-machine <env>, который решил проблему. Ссылка на Почта здесь.

Другие вопросы по теме