Я запускаю свой контейнер Docker и ожидаю достичь его конечных точек.
В этом вопросе я предоставил свой Dockerfile и gradle.build. Как улучшить файл gradle.build?
Образ Docker создан успешно, и когда я запускаю его, я вижу, как запускается Spring Boot, включая «Spring Boot logo» и Tomcat started on port(s): 9090 (http) with context path ''.
Запускаю свой образ с pavelpolubentcev$ docker run -i -t -e SERVER_PORT=9090 messenger-auth-auth
Тем не менее, я не могу получить доступ к своим конечным точкам, когда я пробую http://localhost:9090, а не "Could not get any response".
Когда я запускаю docker ps -a, я вижу, что мой образ работает:
9d31b3e2aa63 messenger-auth-auth "java -jar /app/mess…" 6 minutes ago Up 6 minutes 8080/tcp practical_nightingale
Но почему-то вижу еще и 8080/tcp
Что мне делать, чтобы запустить его правильно и наконец получить ответ от своих конечных точек?
Спасибо за помощь, я ценю это, мне действительно нужно решить проблему.
Вы удостоверились, что жестко запрограммировали специальный IP-адрес 0.0.0.0 в коде Java или в файле application.properties?
Нет, я ничего не кодировал
Хорошо, поэтому я подозреваю, что ваш вопрос является дубликатом Как мне получить доступ к весеннему приложению, работающему в контейнере докера? ... в любом случае, комментарий @ IvanAracki также актуален: вам нужно как прослушивать 0.0.0.0 внутри контейнера, так и публиковать порт с соответствующей опцией.




Сопоставьте порт контейнера с внешним портом: docker run -p 9090:9090 ...
Первый порт - это внешний порт (к которому вы хотите получить доступ сейчас с хост-машины), а второй - внутренний порт (порт на контейнере).
Вы можете указать такой же внешний порт или нет.
8080/tcp, который вы видите на выходе при перечислении запущенных контейнеров, определен в EXPOSE в файле образа Docker. Но на самом деле эта инструкция не публикует порт.
Вы должны сопоставить порт вашего хоста (машины) с портом контейнера, чтобы пересылать TCP / UDP от хоста к контейнеру.
Тем не менее, в вашем случае команда для запуска контейнера:
docker run -e SERVER_PORT=9090 -p 9090:9090 messenger-auth-auth
вам нужно опубликовать свои порты с
docker run -p 8080:8080