首页 > 解决方案 > 如何在 docker 中暴露 ${PORT} spring boot 应用程序随机端口?

问题描述

如何在中公开${PORT}spring boot应用程序docker

Spring Boot 应用程序在随机端口上启动,我必须在 docker 中公开相同的端口。

可能吗?

标签: spring-bootdockerport

解决方案


正如评论中提到的,最好在应用程序端有一个静态端口,否则映射确切的端口会很困难。

如何为 Spring Boot 应用程序配置端口

另一种选择是使用主机网络,因此您将能够使用容器端口访问应用程序,但此选项仅适用于 Linux。

如果您对容器使用主机网络模式,则该容器的网络堆栈不会与 Docker 主机隔离(容器共享主机的网络命名空间),并且容器不会获得自己的 IP 地址分配。例如,如果您运行一个绑定到端口 80 的容器并使用主机网络, 则容器的应用程序可在主机 IP 地址的端口 80 上使用

码头主机网络

docker run -it --net host --rm my_app

假设您的应用程序在某个随机端口上运行8087,那么您将能够使用 http://localhost:8087 访问应用程序,因为--net host


推荐阅读