SpringBoot容器连接Oracle数据库容器失败求助
解决SpringBoot连接Docker Oracle容器失败的问题
1. 修正Oracle容器端口映射配置
gvenzl/oracle-xe:21镜像默认监听端口为1521,你当前启动命令中把宿主机1522端口映射到容器1522端口,但容器内部Oracle服务实际监听的是1521,这是连接失败的核心原因之一。
重新启动Oracle容器,修正端口映射:
docker run -it --rm -p 1522:1521 -e ORACLE_PASSWORD=oracle --name=oracle --network=my-network gvenzl/oracle-xe:21
2. 调整JDBC连接URL
由于SpringBoot容器与Oracle容器处于同一Docker网络,直接通过容器名oracle访问即可,且需使用容器内部的监听端口1521,修改配置:
spring.datasource.url=jdbc:oracle:thin:@oracle:1521/xe
3. 验证网络连通性
在SpringBoot容器内测试与Oracle容器的连通性,确认网络可达:
docker exec -it ca-manager ping oracle
若ping不通,检查外部网络my-network的容器成员:
docker network inspect my-network
确保oracle和ca-manager两个容器都在该网络的Containers列表中。
4. 确认Oracle服务完全启动
Oracle XE容器启动需要数分钟,需等待服务就绪后再尝试连接。查看容器日志确认状态:
docker logs oracle
直到日志中出现DATABASE IS READY TO USE!字样,再启动SpringBoot应用。
5. 检查数据源基础配置
确保用户名、密码及驱动类配置正确:
spring.datasource.username=system spring.datasource.password=oracle spring.datasource.driver-class-name=oracle.jdbc.OracleDriver
内容的提问来源于stack exchange,提问作者tony_rosey
相关产品推荐
相关产品推荐

