Docker開篇之基礎概念篇
阿新 • • 發佈:2018-03-26
三層 body 內核 -m 體積 per contain 鏡像 blog
What——什麽是容器?
容器技術,是一種操作系統層的虛擬化(Operating system-level virtualization),它將應用軟件系統打包成一個軟件容器(Container),內涵應用軟件本身的代碼,以及所需要的操作系統核心和依賴庫,是應用程序可以在幾乎任何地方以相同的方式運行。開發人員在本地創建好測試的容器,無需修改就可以在測試環境部署測試,所以測試通過後也可以非常快捷的在生產環境部署上限。
容器與虛擬機
看到這裏,就不得不提虛擬機技術,因為兩者都為應用提供封裝和隔離。乍一看兩者都是虛擬化,但兩者也是有區別的。
虛擬機的虛擬化使許多操作系統可同時運行在單個系統上。
容器則可以共享同一個系統內核,將應用進程與系統其他部分隔離開。
如圖所示:
從圖中,可以看出所有的容器共享一個Host OS,這使得容器在體積上要比虛擬機小很多。另外,啟動容器不需要啟動整個操作系統,所以容器部署和啟動速度相對更快些,開銷更小,也更容易遷移。
Why——為什麽需要容器?
為什麽需要容器?容器到底解決了什麽問題?
最簡單的答案是:容器使軟件具備了超強的可移植能力。
容器解決的問題
當今的軟件系統的架構相比十幾年前變得特別復雜了,三層架構已經被微服務的集群化替代,成為了主流。在面向微服務的開發過程中,對多個服務應用的測試部署成為了最大的工作量,然而容器解決了這個問題。通過開放式的標準構建以單個服務為實例的輕量鏡像,為快速測試、部署上線提供了一致的環境,也加快了開發人員的定位問題的速度。
Docker開篇之基礎概念篇