通过查看Docker的tomcat容器的日志看报错
问题截图

(2)分析原因
springBoot打成jar包 通过docker部署 测试接口失败 通过查询docker容器的日志,看到连接数据库失败。此时怀疑
1.可能是数据库账号密码输入错误 警告排查是账号密码没错误,
2.怀疑是mysql的ip地址直接使用localhost或者127.0.0.1 是错误的
(3)解决办法
1.直接尝试使用服务器的ip地址和映射的docker端口号发现成功,放开防火墙,测试成功,说明是直接使用localhost可以,巨坑
windows可以直接使用localhost连接数据库,而docker镜像生成的mysql容器的ip并不是localhost(127.0.0.1)
直接使用服务器的ip和映射的端口,看可以实现数据库的链接但是这是不安全的数据库是不经暴露的,3306,6739(redis)端口服务部署之后是开启防火墙的
2. 通过docker inspect 查看mysql容器的详情
docker inspect --format='{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mysql
3.拿到mysql容器的ip 修改application-dev.yml 的mysql的url配置然后再进行接口测试数据查询成功
文章讲述了作者在使用Docker部署SpringBoot应用时,遇到通过localhost连接MySQL失败的问题。通过分析日志和dockerinspect,发现MySQL容器的IP并非localhost,解决办法是使用服务器IP和映射的端口,同时强调了数据库安全性和防火墙设置的重要性。
6222

被折叠的 条评论
为什么被折叠?



