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

相關文章
相關標籤/搜索