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

Docker容器化Spring Boot应用后客户端无法连接问题

Spring Boot容器化后外部客户端无法连接(Connection refused)问题排查与解决

问题场景

  • 服务器直接运行Spring Boot应用:执行java -jar springdemo-0.0.1-SNAPSHOT.jar,跨设备客户端通过curl http://serverip:34256/api/test可正常获取响应:
{
    "One": 1,
    "Two": 2,
    "Three": 3
}
  • 容器化操作后:执行docker build -t java-image .和docker run -p 34256:34256 --name java-container java-image,客户端连接报错:
curl: (7) Failed to connect to serverip port 34256 after 55 ms: Connection refused
  • 应用配置application.properties:
server.address=0.0.0.0
server.port=34256
  • Dockerfile内容:
FROM openjdk:17-alpine
ARG PORT=34256
MAINTAINER me
EXPOSE ${PORT}
COPY ./springdemo-*.jar ./springdemo-*.jar
CMD ["java","-jar","springdemo-*.jar"]

排查与解决步骤

1. 修复Dockerfile的jar包通配符问题

当前Dockerfile的CMD使用了springdemo-*.jar通配符,但exec模式(["command", "args"])不会解析shell通配符,java进程会尝试直接运行名为springdemo-*.jar的文件,而该文件不存在,导致应用根本未启动。

解决方案:
修改Dockerfile,改用固定文件名或shell模式执行命令:

方案一:重命名jar包并使用shell模式

FROM openjdk:17-alpine
ARG PORT=34256
MAINTAINER me
EXPOSE ${PORT}
COPY ./springdemo-*.jar ./app.jar
CMD java -jar app.jar

方案二:明确指定jar包全名

FROM openjdk:17-alpine
ARG PORT=34256
MAINTAINER me
EXPOSE ${PORT}
COPY ./springdemo-0.0.1-SNAPSHOT.jar ./springdemo-0.0.1-SNAPSHOT.jar
CMD ["java","-jar","springdemo-0.0.1-SNAPSHOT.jar"]

2. 验证容器内应用状态

修复Dockerfile后重新构建并运行容器,进入容器内部确认应用是否正常启动:

  • 进入容器:docker exec -it java-container sh
  • 检查java进程:ps aux,确认存在java运行进程
  • 检查端口监听:安装工具apk add net-tools后,执行netstat -tulpn,确认34256端口被java进程监听,且监听地址为0.0.0.0

3. 确认端口映射生效

在服务器执行docker ps,查看PORTS列是否显示0.0.0.0:34256->34256/tcp或:::34256->34256/tcp,确保端口映射绑定到服务器所有网卡(而非仅本地回环127.0.0.1)。

4. 检查服务器防火墙/安全组

确认服务器防火墙(如ufw、iptables)或云服务商安全组已放行34256端口的入站流量:

  • ufw命令:ufw allow 34256/tcp
  • iptables命令:iptables -A INPUT -p tcp --dport 34256 -j ACCEPT
  • 云服务器需在控制台安全组中添加对应端口的入站规则

5. 验证容器内接口可用性

在容器内部执行curl http://localhost:34256/api/test,若能正常返回响应,说明应用运行正常,问题出在外部网络层面;若不能返回,回到步骤1重新排查应用启动问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:35:19