Docker 是一個開源的應用容器引擎,讓開發者能夠打包他們的應用以及依賴包到一個可移植的容器中,而後發佈到任何流行的Linux機器上,也能夠實現虛擬化,容器是徹底使用沙箱機制,相互之間不會有任何接口。(摘自百度百科)linux
這裏我總結概括下重點是:git
打包成容器。github
衆所周知,一個Java 應用 war包或者jar包 啓動成功,有可以對外提供服務的能力(能正常訪問頁面,作操做),須要部署到一臺有tomcat的linux環境中。docker
沒有容器技術前的上線流程一般出現這樣的或那樣的問題,好比:tomcat
1.開發環境沒錯,測試環境報錯---->排查後發現是啓動腳本里,jdk版本不對運維
2.測試環境沒錯,生產環境報錯 -->排查發現是tomcat版本和jdk不匹配。性能
而後:測試
開發、運維、測試同事都很頭痛,都以爲本身沒問題,spa
總結會的時候還要扣績效,操作系統
雖然說不容易出事情,單出了事情 很影響新產品上線效率。
有個 打包 機制就不同了,他會很強,強到能夠把我這個應用運行時(能正常對外提供服務),須要的 一切 ,包括tomcat,jdk,甚至是linux文件都 打包 到一塊兒。
這個打出來的包叫作鏡像。 鏡像運行時叫作容器。
能夠發現 鏡像能夠很方便的作遷移,備份,存儲,交付。
運行鏡像,能對外提供服務能力的鏡像運行時,叫作容器。
這樣,打出來的包,優勢就出來了
1.環境的強一致性。docker鏡像提供了除內核外完成的運行時環境,保證其餘使用人員,能完整復現應用運行時環境。不會出現「這應用在xxx環境沒問題」這種狀況。
2.遷移方便,持續交付和部署。一次打包,處處運行。
App在虛擬機中運行時,調用須要通過虛擬化軟件的處理,才能調用到真正的宿主機操做系統。
在容器中運行,直接可使用宿主機操做系統,省事省力,可喜可賀。
那麼容器技術的又有了優勢:
敏捷和高性能:直接調用宿主機操做系統,不須要通過虛擬化軟件的處理。
docker是一種技術,能使得應用在任何環境都能用的打包技術。打包出的東西叫鏡像。鏡像運行時(有對外提供服務能力)叫容器。
https://github.com/haoprogrammer/kubernetes-study/tree/master/pdf/umf
歡迎轉載,轉載請註明出處,感謝您的閱讀。