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

Docker部署Java应用无法连接Docker内PostgreSQL问题求助

解决Docker容器内Java应用无法连接WSL2中PostgreSQL的问题

方法1:用WSL2的IP连接

  • 打开WSL终端,执行以下命令获取当前WSL2的IP:
    ip addr show eth0 | grep inet | awk '{print $2}' | cut -d/ -f1
  • 把Java应用的数据库连接字符串里的localhost替换成这个IP,比如:
    jdbc:postgresql://172.18.0.1:5432/your_database_name
  • 注意:WSL2默认IP会随重启变化,若要固定IP,可修改WSL的网络配置文件(按需操作)

方法2:使用Docker自定义网络(推荐)

  • 先创建一个专属网络:
    docker network create app-network
  • 启动PostgreSQL容器时加入该网络:
    docker run -d --name postgres-db --network app-network -p 5432:5432 -e POSTGRES_PASSWORD=your_pwd postgres
  • 启动Java应用容器时也加入同一个网络:
    docker run -d --name java-app --network app-network your-java-image-tag
  • 此时Java应用的连接地址直接用PostgreSQL容器名即可:
    jdbc:postgresql://postgres-db:5432/your_database_name
    Docker会自动在同一网络内解析容器名到对应IP,不用管具体数值

方法3:用Docker内置的宿主机地址

  • 在Windows+WSL2环境下,Docker容器可以通过host.docker.internal直接访问宿主机(WSL2的网络已被映射)
  • 直接修改连接字符串为:
    jdbc:postgresql://host.docker.internal:5432/your_database_name
    这个地址无需手动获取IP,重启后也能正常访问,适合快速测试

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 12:18:18