spring cloud各個微服務(wù)打包到docker容器內(nèi)

一、添加maven項(xiàng):

二、Dockerfile 文件:

三、使用docker命令打包項(xiàng)目

-Dmaven.test.skip=true 不編譯測試類可用以上命名依次打包 project-eureka(注冊中心項(xiàng)目) uaa(認(rèn)證中心) (微服務(wù))project-0…project-n??
到這里項(xiàng)目就可以運(yùn)行了。http://localhost:8761/



docker常用命令



在研究docker的同時也是碰見一些坑在這里分享

問題一、微服務(wù)部署到docker鏡像內(nèi)如何連接數(shù)據(jù)庫的,微服務(wù)docker鏡像內(nèi)本地沒有安裝mysql。

研究了幾天原本以為 --link mysql:latest 是指向docker容器內(nèi)的mysql呢。(目前不知道–link真正實(shí)際的作用。 應(yīng)該是在宿機(jī)內(nèi)使用的吧(192.168.99.100)

曾經(jīng)傻傻的寫了:docker run --name base-uaa -p 9999:9999 --link mysql:latest --link base-registry -t base-uaa:latest 意思是啟動uaa項(xiàng)目并且找到mysql容器,后面的link是找到base-redgistry項(xiàng)目.

問題二、當(dāng)eureka 項(xiàng)目打包到docker后,微服務(wù)如何注冊到eureka注冊中心。

其實(shí)當(dāng)你在外部安裝docker后,比如mysql


0.0.0.0:3306其實(shí)是127.0.0.1:3306

直接當(dāng)成mysql已安裝到本地即可。用客戶端直接連即可。

但是如果我微服務(wù)要注冊到eureka上,就不能寫127.0.0.1了,因?yàn)閐ocker鏡像內(nèi)會自動映射出一個內(nèi)部的IP地址

如下圖:



172.17.0.6 Ip是鏡像內(nèi)分配的ip外部無法訪問,不能直接http://172.17.0.6:8080

但是你可以http:localhost:8080

需要寫真正的ip地址


打包到docker容器后,需要將所有的127.0.0.1或者localhost都修改成真實(shí)IP即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容