1. 程式人生 > >Docker開篇之基礎概念篇

Docker開篇之基礎概念篇

三層 body 內核 -m 體積 per contain 鏡像 blog

What——什麽是容器?

容器技術,是一種操作系統層的虛擬化(Operating system-level virtualization),它將應用軟件系統打包成一個軟件容器(Container),內涵應用軟件本身的代碼,以及所需要的操作系統核心和依賴庫,是應用程序可以在幾乎任何地方以相同的方式運行。開發人員在本地創建好測試的容器,無需修改就可以在測試環境部署測試,所以測試通過後也可以非常快捷的在生產環境部署上限。

容器與虛擬機

看到這裏,就不得不提虛擬機技術,因為兩者都為應用提供封裝和隔離。乍一看兩者都是虛擬化,但兩者也是有區別的。

  • 虛擬機的虛擬化使許多操作系統可同時運行在單個系統上。

  • 容器則可以共享同一個系統內核,將應用進程與系統其他部分隔離開。

如圖所示:

技術分享圖片
技術分享圖片

從圖中,可以看出所有的容器共享一個Host OS,這使得容器在體積上要比虛擬機小很多。另外,啟動容器不需要啟動整個操作系統,所以容器部署和啟動速度相對更快些,開銷更小,也更容易遷移。

Why——為什麽需要容器?

為什麽需要容器?容器到底解決了什麽問題?

最簡單的答案是:容器使軟件具備了超強的可移植能力。

容器解決的問題

當今的軟件系統的架構相比十幾年前變得特別復雜了,三層架構已經被微服務的集群化替代,成為了主流。在面向微服務的開發過程中,對多個服務應用的測試部署成為了最大的工作量,然而容器解決了這個問題。通過開放式的標準構建以單個服務為實例的輕量鏡像,為快速測試、部署上線提供了一致的環境,也加快了開發人員的定位問題的速度。

Docker開篇之基礎概念篇