【Docker】進階之路:(一)容器技術發展史
- 什么是容器
- 為什么需要容器
- 容器技術的發展歷程
- Docker容器是如何工作的
什么是容器
容器作為一種先進的虛擬化技術,已然成為了云原生時代軟件開發和運維的標準基礎設施。在了解容器技術之前,我們先來了解一下虛擬化技術。
什么是虛擬化技術?
計算機歷史上首個虛擬化技術實現于1961年,IBM709計算機首次將CPU占用切分為多個極短(1/100sec)的時間片,每一個時間片都用來執行不同的任務。通過對這些時間片的輪詢,這樣就可以將一個CPU虛擬化或者偽裝成為多個CPU,并且讓每一顆虛擬CPU看起來都是在同時運行的。這就是虛擬機的雛形。
為什么需要容器
擬化技術已經成為一種被大家廣泛認可的服務器硬件資源共享方式。實際上,與傳統的虛擬機相比,容器有著明顯的區別。
虛擬機管理系統通常需要為虛擬機虛擬出一套完整的硬件環境,此外,在虛擬機中,通常包含整個操作系統及其應用程序。從這些特點來看,虛擬機與真實的物理計算機非常相似。因為虛擬機包含完整的操作系統,所以虛擬機所占磁盤容量一般都比較大,一般為幾個GB。如果安裝的軟件比較多,則可以占用幾十,甚至上百GB的磁盤空間。虛擬機的啟動相對也比較慢,一般為數分鐘。
容器技術的發展歷程
在大致理解了虛擬化技術之后,接下來我們可以了解一下容器的誕生歷史。雖然容器概念是在Docker出現以后才開始在全球范圍內火起來的,但在Docker之前,就已經有無數先驅在探索這一極具前瞻性的虛擬化技術。
先來看看容器技術發展的歷史紀年表:
- 1979年,Unix v7系統支持chroot,為應用構建一個獨立的虛擬文件系統視圖。
- 1999年,FreeBSD 4.0支持jail,第一個商用化的OS虛擬化技術。
- 2004年,Solaris 10支持Solaris Zone,第二個商用化的OS虛擬化技術。
- 2005年,OpenVZ發布,非常重要的Linux OS虛擬化技術先行者。
- 2004 ~ 2007年,Google內部大規模使用Cgroups等OS虛擬化技術。
- 2006年,Google開源內部使用的process container技術,后續更名為Cgroup。
- 2008年,Cgroups進入了Linux內核主線。
- 2008年,LXC(Linux Container)項目具備了Linux容器的雛型。
- 2011年,CloudFoundry開發Warden系統,它是一個完整的容器管理系統雛型。
- 2013年,Google通過Let Me Contain That For You(LMCTFY)開源內部容器系統。
Docker容器是如何工作的
Docker容器和傳統VM在技術實現上有所不同。下圖 1-3顯示的是VM與Docker容器的邏輯組成: