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

非容器化Spring Boot CRUD API连接Docker PostgreSQL容器问题及解决

本地未容器化Spring API连接Docker PostgreSQL容器失败的解决方案

问题背景

练习CRUD API开发时,采用Docker PostgreSQL容器替代本地完整安装的PostgreSQL,但本地运行的未容器化Spring API无法与数据库容器建立连接。

已执行的操作

  1. 创建Docker桥接网络:
sudo docker network create --driver bridge crud_db_network_connection
  1. 启动PostgreSQL容器:
sudo docker run --name postgresDbCrudContainer -p 5432:5432 -e POSTGRES_PASSWORD=postgres -e POSTGRES_USER=postgres -e POSTGRES_DB="cruddb" --network crud_db_network_connection postgres
  1. Spring API的application.yml数据库配置:
spring:
  datasource:
    url: jdbc:postgresql://host.docker.internal:5432/cruddb
    username: postgres
    password: postgres
    driver-class-name: org.postgresql.Driver
  jpa:
    database: POSTGRESQL
    show-sql: true
    hibernate:
      ddl-auto: create

(注:API运行在本地系统,未进行容器化)

解决步骤

将配置中的host.docker.internal替换为PostgreSQL容器的实际IP即可解决连接问题,具体操作如下:

  • 执行命令查看Docker网络内的容器IP:
sudo docker network inspect crud_db_network_connection
  • 在返回的JSON数据中,找到postgresDbCrudContainer对应的IPAddress字段值,即为容器的IP地址。
  • 修改application.yml中的数据库URL,例如容器IP为172.18.0.2,则更新后的URL为:
jdbc:postgresql://172.18.0.2:5432/cruddb

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 21:54:18