Docker系列01-容器初探

關於容器的發展史

關於容器有不得不說的歷史故事,以下資料來自於互聯網收集整理所得:

容器概念始於 1979 年提出的 UNIX chroot,它是一個 UNIX 操作系統的系統調用,將一個進程及其子進程的根目錄改變到文件系統中的一個新位置,讓這些進程只能訪問到這個新的位置,從而達到了進程隔離的目的。

2000 年的時候 FreeBSD 開發了一個類似於 chroot 的容器技術 Jails,這是最早期,也是功能最多的容器技術。Jails 英譯過來是監獄的意思,這個“監獄”(用沙盒更爲準確)包含了文件系統、用戶、網絡、進程等的隔離。

2001 Linux 也發佈自己的容器技術 Linux VServer,2004 Solaris 也發佈了 Solaris Containers,兩者都將資源進行劃分,形成一個個 zones,又叫做虛擬服務器。

2005 年推出 OpenVZ,它通過對 Linux 內核進行補丁來提供虛擬化的支持,每個 OpenVZ 容器完整支持了文件系統、用戶及用戶組、進程、網絡、設備和 IPC 對象的隔離。

2007 年 Google 實現了 Control Groups( cgroups ),並加入到 Linux 內核中,這是劃時代的,爲後期容器的資源配額提供了技術保障。

2008 年基於 cgroups 和 linux namespace 推出了第一個最爲完善的 Linux 容器 LXC。

2013 年推出到現在爲止最爲流行和使用最廣泛的容器 Docker,相比其他早期的容器技術,Docker 引入了一整套容器管理的生態系統,包括分層的鏡像模型,容器註冊庫,友好的 Rest API。

2014 年 CoreOS 也推出了一個類似於 Docker 的容器 Rocket,CoreOS 一個更加輕量級的 Linux 操作系統,在安全性上比 Docker 更嚴格。

2016 年微軟也在 Windows 上提供了容器的支持,Docker 可以以原生方式運行在 Windows 上,而不是需要使用 Linux 虛擬機。




容器與虛擬機的區別


640?wx_fmt=png&tp=webp&wxfrom=5&wx_lazy=1&wx_co=1

左邊是虛擬機右邊是容器,從感官上,虛擬機的層級明顯是比容器多,多了一個操作系統,而容器則是在原有操作系統上利用資源隔離等相關技術做了封裝並實現了在應用層互相獨立隔離,達到了類似虛擬機之間隔離獨立的效果而性能損失較虛擬機這種方式少。虛擬機的方式也不是一無是處,虛擬機有它自身的優點,比如他是以上層再運行多個操作系統實例的方式做承載和隔離,更符合計算機的運行機制,程序代碼遷移成本也更低,容器則往往需要一定的技術積累,才能做好容器對應的鏡像。總體來講,方案沒有絕對的優劣之分,只有最適合自己需求的就是好方案。



容器的特點


一句話總結容器的特點:Build once,Run anywhere !(搭建一次,到處能用)

Docker技術的三大核心概念,分別是:

●  鏡像(Image)

●  容器(Container)

●  倉庫(Repository)

這些我們在後續的實戰文章會詳細展開描述,同時還會介紹容器的更多優點和便捷性。


不得不說的K8S


Kubernetes(簡稱K8s,是用8代替8個字符“ubernete”而成的縮寫)是Google開源的一個容器編排引擎。既然已經有了流行的docker產品了,爲什麼還會衍生出一個k8s而且得到衆多雲商青睞並在k8s基礎上退出自己的容器服務DaaS呢,那就不得不說k8s的特點:

● 協調輔助進程,協助應用程序整合,維護一對一“程序 – 鏡像”模型。

● 掛載存儲系統

● 分佈式機密信息

● 檢查程序狀態

● 複製應用實例

● 使用橫向莢式自動縮放

● 命名與發現

● 負載均衡

● 滾動更新

● 資源監控

● 訪問並讀取日誌

● 程序調試

● 提供驗證與授權


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章