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

同一Docker网络内应用容器无法连接MySQL容器问题问询

问题根因及修复方案

配置错误确认

你的docker-compose.yml存在明确配置错误,问题出在app服务的SPRING_DATASOURCE_URL环境变量配置。

错误原因解释

  • Docker同自定义网络内的容器互相通信时,仅需要使用目标容器的内部服务端口,不需要使用映射到宿主机的端口。
  • 你为mysqlserver服务配置的端口规则"5647:3306",仅作用于宿主机/外部网络访问MySQL的场景,将宿主机5647端口转发到MySQL容器内部的3306端口,同网络内的其他容器无法通过5647端口访问MySQL服务。
  • 当前配置中应用尝试访问mysqlserver:5647,但MySQL容器内部仅监听3306端口,因此触发连接拒绝报错。

修复方案

将app服务的SPRING_DATASOURCE_URL配置修改为如下内容即可:

jdbc:mysql://mysqlserver:3306/database?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true

额外注意事项

depends_on仅能保证容器的启动顺序,无法保证MySQL服务内部初始化完成后再启动应用容器。如果修改端口后仍偶现连接失败问题,可以给应用容器增加启动等待逻辑,等MySQL端口可用后再启动应用服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:45:03