今天讓我們來介紹虛擬化技術 Docker,在這之前相信很多人都已經聽過虛擬化,那虛擬化又是什麼呢,虛擬化是一種資源管理技術,為了讓我們可以更有效率的使用硬體資源,而其原理是利用軟體將硬體設備抽象,所以系統並不會直接存取硬體而是經由抽象出來的介面來存取硬體資源,以達到多個系統可同時存取硬體資源。
相信這樣解釋還是一樣很多的疑惑,我們用圖像化的方式來說明,我們用Docker 官方Logo來舉例,電腦就像是一艘大貨船,系統就是在貨船上的貨櫃,而今天我們有一個系統,可能只占了貨船的1/3空間,那剩下的2/3就是閒置在那邊,可是這樣不是很浪費嗎!? 所以這時候就可以利用虛擬化技術,來放入更多的貨櫃,讓我們可以充分的利用到所有的空間。
相信大家對虛擬化有了一些概念,而我們的重點Docker指的就是那些放在貨船上的貨櫃,傳統的虛擬機(VM)在執行時需要一個完整的作業系統支持,而Docker不需要整個完整的作業系統,他只取需要的核心程式,打個比方來說VM就像是一把萬能的瑞士刀,但是我們可能只需要剪刀和小刀的功能而不需要所有的功能,Docker就可以幫我們做到這件事情,Docker 的輕量化可以讓我們更有效率的使用資源,只抽取需要的資源而不把整個系統載入,且因為輕量化所以初始化速度也相對較快,相較於一般的虛擬機(VM)每次啟動都要好幾分鐘,且因消耗的資原較少,所以能夠啟動更多的 Docker 服務,比起虛擬機(VM)開幾十個可能就已經到極限了,Docker 甚至可以開到上千個,所以相對於對硬體資源的運用Docker明顯表現得比虛擬機(VM)來得更好。
說了這麼多是不是覺得都有Docker 了那幹嘛還要用虛擬機(VM)呢,雖然Docker看似如此強大但是還有很多地方是虛擬機(VM)有但是Docker沒有的 ,像是failover當伺服器發生故障時會自動的將伺服器轉移到備用的系統上,讓Server不會中斷服務,或是在不同主機之間的遷移都是目前Docker 還無法取代虛擬機(VM)的功能,在實務上會需要已經有良好解決方案的工具來完成,不管是安全性、資料轉移、failover等等還有不少是Docker目前還無法取代的,期待未來Docker得更新能提供更多的解決方案,來讓我們實務上能有更多的選擇和應用。
經過上述的解釋後對於Docker是不是有些瞭解了呢,虛擬化技術讓我們有效率的使用硬體資源,輕量化且快速的部署可以讓我們快速的測試或發布應用程式,節省開發等代的時間,未來Docker的發展相信是非常值得關注的事情。
參考資料 :
VMware擁抱Docker再進一步 vSphere也能成為Container主機