You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何固定Docker部署的Spring Boot服务的暴露端口?

问题解决方法

核心原因

你启动Spring Boot容器时,--publish参数仅指定了容器内部端口7070,Docker会默认将其映射到主机的随机端口。要实现固定端口访问,必须明确指定主机端口:容器端口的映射关系。

修正启动命令

将Spring Boot容器的启动命令修改为:

docker run -it --network image --publish 7070:7070 <image_name>

或使用简写参数-p:

docker run -it --network image -p 7070:7070 <image_name>

修改后主机的7070端口会直接映射到容器内部的7070端口,之后你就可以通过http://localhost:7070/jpatest直接访问服务。

额外检查项

  1. 端口占用排查:如果启动时报端口被占用错误,执行对应命令查看主机7070端口的占用情况:

    # Linux/macOS
    lsof -i :7070
    # Windows
    netstat -ano | findstr :7070
    

    杀掉占用端口的进程后再重新启动容器。

  2. 数据库连接优化:你的application.properties中数据库URL使用了jdbc:mysql://0.0.0.0:3306/test,在Docker内部网络中,应该使用MySQL容器的名称mysql作为主机名,即启用注释掉的配置:

    spring.datasource.url=jdbc:mysql://mysql:3306/test
    

    这样Spring Boot容器才能在Docker网络中更稳定地访问MySQL服务。

内容的提问来源于stack exchange,提问作者user25426008

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 14:21:13