容器无法连接mysql

来源:2-7 Docker运行Mysql Server

慕先生5490524

2021-02-13

mysql57的容器已启动,并且用java -jar 方式是可以启动kubeblog应用并通过宿主机访问的。
改成用容器docker run --name kubeblog -d -p 5000:5000 --link mysql57 kubeblog:1.0后,看docker logs发现
springboot报错
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
请帮忙看看是什么问题,谢谢!

图片描述

图片描述

写回答

1回答

清风

2021-02-13


在程序里默认访问的数据库是 url: jdbc:mysql://${MYSQL_SERVER:localhost}:${MYSQL_PORT:3306}/${MYSQL_DB_NAME:blogDB}?useUnicode=true&characterEncoding=utf-8

所以第一会优先访问localhost:3306, 在容器里运行 kubeblog时,容器内没有 localhost:3306这个数据服务器,所以此时会尝试查找容器里的环境变量MYSQL_SERVER和MYSQL_PORT。 可以在容器启动的时候,传入这两个参数,参数值分别为 mysql57和 3306。


0
1
慕先生5490524
非常感谢!
2021-02-13
共1条回复

Kubernetes 入门到进阶实战,系统性掌握 K8s 生产实践

阿里云最有价值专家亲授,云原生时代必备技能

1502 学习 · 613 问题

查看课程