docker内springboot项目链接mysql

个人springboot项目和mysql都在docker内,位于不一样的容器java

若是你的java项目数据库链接地址写 localhost:3306 是连不通的,由于容器之间是不通讯的node

如何让docker容器之间进行通讯,方式有不少种。我这里提供如下几种通讯的解决方案mysql

经过容器 IP 进行通讯git

查看mysql容器的详细信息
docker inspect mysql

找到 mysql 容器的 网关信息。修改 java 的数据库链接地址  github

jdbc:mysql://172.17.0.4:3306

 

还有一种方法经过公网ip来访问,可是这种方式确定没有局域网通讯来得快spring

jdbc:mysql://公网ip:3306

经过 docker  --link 实现容器通讯sql

启动java项目 --link=须要链接的容器名:自定义的容器别名
docker run -d --name "hone"  --link=mysql:mysql -p 8080:8080 hone 

java的数据库链接地址 自定义的容器别名:端口
jdbc:mysql://mysql:3306/

启动成功后,查看 java 所在容器的 host 文件
docker exec hone cat /etc/hosts


[root@iz8vb6taz1tqqkbjaumncez jar]# docker exec hone cat /etc/hosts
127.0.0.1	localhost
::1	localhost ip6-localhost ip6-loopback
fe00::0	ip6-localnet
ff00::0	ip6-mcastprefix
ff02::1	ip6-allnodes
ff02::2	ip6-allrouters
172.17.0.4	mysql a3fd82cec3a1    # 这里显示已经链接mysql容器
172.17.0.3	199eb58ec719

 

 

参考地址:https://birdben.github.io/2017/05/02/Docker/Docker实战(二十七)Docker容器之间的通讯/docker

相关文章
相关标签/搜索