spring-boot - 如何在 docker 中暴露 ${PORT} spring boot 应用程序随机端口?
问题描述
如何在中公开${PORT}
spring boot应用程序docker
?
Spring Boot 应用程序在随机端口上启动,我必须在 docker 中公开相同的端口。
可能吗?
解决方案
正如评论中提到的,最好在应用程序端有一个静态端口,否则映射确切的端口会很困难。
另一种选择是使用主机网络,因此您将能够使用容器端口访问应用程序,但此选项仅适用于 Linux。
如果您对容器使用主机网络模式,则该容器的网络堆栈不会与 Docker 主机隔离(容器共享主机的网络命名空间),并且容器不会获得自己的 IP 地址分配。例如,如果您运行一个绑定到端口 80 的容器并使用主机网络, 则容器的应用程序可在主机 IP 地址的端口 80 上使用。
docker run -it --net host --rm my_app
假设您的应用程序在某个随机端口上运行8087
,那么您将能够使用 http://localhost:8087 访问应用程序,因为--net host
推荐阅读
- c++ - 数组中具有十进制值的矩阵的转置
- python - 使用带有 pyinstaller 标志 --windowed 的 shutil.which("ffmpeg") 的功能(据说)
- java - handlerinterceptor prehandle 调用了两次
- git - git origin 与其他遥控器,为什么 origin 工作得这么好?
- oracle - 撤消 Oracle APEX 中的活动
- javascript - 如何通过单击图像而不使用锚标记重定向到网页
- python - 如何将字符串值映射为从一开始到字符串数的整数
- javascript - 如何将多个html元素存储在一个变量中作为Javascript中的数组?
- reactjs - 如何使用钩子将样式应用于 React js 中的函数
- flutter - 如何在颤动中使用带有动态数据的文本跨度