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

如何在Docker容器中使用Oracle与JPA?Spring应用部署后数据库连接被拒解决

核心故障原因

你配置文件里的数据库地址写的是localhost,Docker容器有独立的网络命名空间,容器内的localhost指向容器自身,而非运行Oracle数据库的宿主机,所以会触发连接拒绝错误。

解决方案

  • 方案1:替换数据库连接地址(推荐,跨平台兼容性好)
    • Windows/Mac 环境:将spring.datasource.url中的localhost替换为Docker默认提供的宿主机域名host.docker.internal,修改后配置为:
      spring.datasource.url= jdbc:oracle:thin:@host.docker.internal:1521/xe
      
    • Linux 环境:直接替换为宿主机的局域网IP(比如你的宿主机IP为192.168.1.10则替换为该地址),注意要保证Oracle监听绑定的是0.0.0.0而非仅127.0.0.1,且宿主机防火墙开放1521端口的访问权限。
  • 方案2:容器使用宿主机网络(仅适合Linux环境)
    启动容器时增加--network=host参数,容器会直接共享宿主机的网络栈,此时容器内的localhost就等同于宿主机的localhost,启动命令改为:
    docker run --network=host correctanadressserver:0.0.1-SNAPSHOT
    
  • 方案3:临时调试无需重打包的方法
    可以通过Docker启动时传入Spring环境变量直接覆盖配置,不用修改代码重新打包镜像,比如Windows/Mac环境可直接运行:
    docker run -e SPRING_DATASOURCE_URL=jdbc:oracle:thin:@host.docker.internal:1521/xe correctanadressserver:0.0.1-SNAPSHOT
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 23:15:08