个人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