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