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