Docker是一個開源的應用容器引擎,讓開發(fā)者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發(fā)布到任何流行的Linux機器上,也可以實現(xiàn)虛擬化。容器是完全使用沙箱機制,相互之間不會有任何接口。
Docker相比傳統(tǒng)虛擬化技術最明顯的特點就是啟動快,資源占用小。因此適合構建隔離的標準化的運行環(huán)境,輕量級的PaaS,自動化測試和持續(xù)集成環(huán)境,以及一切可以橫向擴展的應用。
為了解決開發(fā)人員和運維人員之間的協(xié)作關系,加快應用交付速度,越來越多的企業(yè)引入了DevOps這一概念。但是,傳統(tǒng)的開發(fā)過程中,開發(fā)、測試、運維是三個獨立運作的團隊,團隊之間溝通不暢,開發(fā)運維之間沖突時有發(fā)生,導致協(xié)作效率低下,產(chǎn)品交付延遲, 影響了企業(yè)的業(yè)務運行。Docker技術將應用以集裝箱的方式打包交付,使應用在不同的團隊中共享,通過鏡像的方式應用可以部署于任何環(huán)境中。這樣避免了各團隊之間的協(xié)作問題的出現(xiàn),成為企業(yè)實現(xiàn)DevOps目標的重要工具。以容器方式交付的Docker技術支持不斷地開發(fā)迭代,大大提升了產(chǎn)品開發(fā)和交付速度。
此外,與通過Hypervisor把底層設備虛擬化的虛擬機不同,Docker直接移植于Linux內核之上,通過運行Linux進程將底層設備虛擬隔離,這樣系統(tǒng)性能的損耗也要比虛擬機低的多,幾乎可以忽略。同時,Docker應用容器的啟停非常高效,可以支持大規(guī)模的分布系統(tǒng)的水平擴展,真正給企業(yè)開發(fā)帶來福音。