Spring Boot Docker переадресация порта контейнера не работает - PullRequest
0 голосов
/ 14 июля 2020

Я создал Docker изображений для своих контейнеров Spring Boot (2.3), которые я хочу запустить на том же хосте. Для этого я планировал использовать разные сопоставленные порты на хосте, ie

docker container run -d -p 8080:8080 myimages/image1
docker container run -d -p 8081:8080 myimages/image2

Контейнер для image1 работает нормально (используя Insomnia для HTTP-запроса к http://localhost: 8080 / mypath).

Однако image2 недостижим: POST приводит к 404 - Not Found, GET - к Server returned nothing (no headers, no data) (последний в порядке, GET возвращает только то, что предоставляет предыдущий POST). Журналы контейнера действительно показывают, что служба запущена («Netty запущена на портах: 8080 [...] Запущена [...] через 4,208 секунды») и контейнер работает.

Если я только запустите image2 и сопоставьте 8080 на хосте, он работает нормально, так что это не изображение. После некоторых исследований я также добавил

server.address=0.0.0.0

в application.yml, но это не помогло.

Я также попытался начать с

docker container run -d -p 8081:8081 -e "JAVA_OPTS=-Dserver.port=8081" myimages/image2

, который приводит к появлению журналов, показывающих, что служба теперь работает на 8081, но сопоставление по-прежнему не работает.

Это Windows.

Почему это не работает? В какой точке цепочки это может дать сбой? Это действительно простая услуга без авторизации или чего-то еще.

1 Ответ

1 голос
/ 14 июля 2020

Я нашел проблему; другая программа (я думаю, мой антивирусный сканер) уже работает на порту 8081.

Я бы удалил вопрос, если бы подумал, что это должно быть очевидно, но на самом деле не было никаких указаний на то, что что-то не так с порт (без «уже назначен» и т.п.), так что если кто-нибудь наткнется на это, может быть, это поможет.

...