Docker SpringBoot项目和MySQL容器间相互访问
问题描述
将SpringBoot项目和MySQL分别部署在两个容器中,要使得项目能访问到MySQL,有一种方法是开放服务器端口,直接通过ip:端口即可访问,但我这边无法开放端口。
解决方案
考虑将两个容器连在一个网络中。
//创建网络
docker network create mynetwork
//Spring Boot容器创建时连到该网络
//注意端口号填写自己项目对应的,镜像也改成自己的镜像
docker run -it -p 28099:8099 --name back --network mynetwork --network-alias back 你的镜像名称。
//MySQL容器创建时连到该网络
docker run -it -p 23306:3306 -e MYSQL_ROOT_PASSWORD="123456" --name sqlserver --network mynetwork --network-alias sqlserver mysql:5.7
修改SpringBoot项目中的url为 jdbc:mysql://sqlserver:3306,即把原本的ip或者localhost改成网络中MySQL容器的别名sqlserver。