容器簡介及其歷程發展

2021-10-09 04:08:11 字數 3206 閱讀 6590

有一種器物,存水儲物,只為生活,曾風華了乙個個王朝的故事,也曾定格一幕幕凡塵的榮辱,他便是容器,伴隨著人類走過萬年的歲月,裝點過流水的光陰。

容器:泛指容納其他物品的工具,一酒杯,承載著瓊漿玉露,點燃數不盡的江湖熱血;一茶壺,沉浮了經年往事,氤氳如夢的人生。千百年前,容器二字,納盡了世間百物,千百年後,同為容器,卻已經踏足了虛擬化世界,攪動一方風雲。

隨著資訊時代的到來,資料噴井式爆發,硬體效能日新月異,可利用率卻難以提高,安全性,時效性,可靠性,穩定性如同磐石般壓在技術人員的心頭。或許,是容器的理念挑動了工程師的神經,致力於建設虛擬世界的他們,將目光放到容器身上,當下軟體和系統的相容問題牽動每乙個消費方,而身為研發人員,亦不知軟體貿然執行會對系統造成何等傷害,如果能夠建設乙個類似於容器一般的器具,與現有環境隔離,但又能擁有軟體執行的環境,把不穩定的資料放到其中測試的話…………

慶幸的是,我們有虛擬機器得以利用,既然軟體的安全和穩定無法預知,就把他放置虛擬機器執行,哪怕該軟體鬧個天翻地覆,亦不會影響的真實的主機,畢竟,虛擬機器之間乃至虛擬機器和宿主機之間,存在物理層次的隔離,如同上圖,病毒肆虐,漏洞百出,損壞的也只是乙個虛機罷了,這樣的虛機,分分鐘建立,不值得心疼。

時過境遷,把虛擬機器當器皿來容納乙個測試程式太浪費了,君若不信,請看:虛擬機器如同真實的電腦,開啟任務管理器,發現cpu、記憶體的利用率差強人意,這不是另一種資源的浪費嗎?

既然如此,我們把沙箱做小一些,不需要虛擬機器那些生硬的虛擬硬體,盡可能精簡,把重心放到應用上,這就是容器的理念,乙個容器以乙個應用為中心展開,擁有的,僅僅只是這乙個應用的執行環境;實現的,是程序之間的隔離;成就的,是應用級別的虛擬化,並無其他,既然有了想法,缺少的就是行動了。

容器技術最早出現於chroot,那時候的容器技術,被稱為監獄(jail),如此可以想象,把程序放到jail中執行,無論發生什麼錯誤,都不會影響到系統其他程序的執行

2023年,unix對chroot jail進行安全加固,形成freebsd jail,然後在2023年時,移植到了linux上,jail在linux上實現被稱之為vserver,他擁有chroot機制,並採用namespaces進行資源隔離,實現了uts隔離(主機名、ip位址等資訊)、檔案系統隔離、pid程序隔離。至此,容器在linux上開啟了新的篇章。

容器技術從2023年後不斷推陳出新,牽引it界的眼球,這個時代正所謂百花齊放,不外如是,2023年,oracle公司研發了solaris container,由系統資源控制和區域的概念來組成邊界,以此達成隔離的效果(說白了就是基於vserver原有的基礎新增了區域的概念),相繼2023年,unix7中研發了openvz,至今,還有很多託管公司使用他來隔離和銷售vps,容器共享相同的體系結構和核心版本,但是需要在系統核心打相應的補丁,谷歌似乎也不甘寂寞,研發了一種cgroups的機制,可以隔離一系列程序的資源使用,被整合進了linux核心,至此三足鼎立。

在2023年的時候,linux發現了lxc linux容器,和openvz,solaris containers類似,使用的是谷歌的cgroups機制,不同的是多了乙個lxc打包可用化技術,方便我們管理容器生命週期。

時至2023年,linux以lxc為底層,把linux沙盒化,使得程序之間隔離,在此基礎之上,研發了docker,在之後,谷歌於docker合作實現libcontainer,將核心概念和抽象移植到libcontainer,使得谷歌稱為容器化行業的領導者,容器的魅力使得谷歌把一切都放置容器執行,據統計,谷歌每週超過20億個容器在執行,正是這無數的容器誕生與銷毀,才得以支撐了當下谷歌資訊的更迭與軟體的訪問。

容器,輕量級虛擬化技術,他的特性注定的他的一生是短暫的,從他誕生啟動的那一刻起,從他執行父程序的那一刻起,就早已經注定了要走的路,要幹的事,以及最後的結局,正如他容量很小,小到默默無聞,小到無聲無息,最後泯然於世間,連一朵浪花都無從激起,起伏有定,更迭有常,這就是容器……

容器技術具備貨櫃的韻味,試想一下:巴黎河畔清風拂面,貨櫃堆疊整齊劃一,於陽光之上散發金屬光澤,貨櫃內部的貨物靜候船隻把他送往彼岸。

如果能夠get到這一點,那麼你離容器的概念就不遠了,映象,如同貨櫃,擁有統一的格式,內部的貨物就是服務,包含容器內部執行的程序以及該程序的執行環境,船隻相當於容器,水路相當於網路,當我們把乙個服務執行好後,封裝成映象,內部資料不會丟失,儲存在容器的倉庫中,通過網路形式傳輸到另乙個主機後,服務仍然可用,而不用再安裝一套作業系統和依賴環境

容器的特點其實我們拿跟它跟硬體抽象層虛擬化hypervisor技術對比就清楚了,我們之前也提到過,傳統的虛擬化(虛擬機器)技術,建立環境和部署應用都很麻煩,而且應用的移植性也很繁瑣,比如你要把vmware裡的虛擬機器遷移到kvm裡就很繁瑣(需要做映象格式的轉換)。那麼有了容器技術就簡單了,總結下容器技術主要有以下特點:

極其輕量:只打包了必要的bin/lib;

秒級部署:根據映象的不同,容器的部署大概在毫秒與秒之間(比虛擬機器強很多);

易於移植:一次構建,隨處部署;

彈性伸縮:kubernetes、swam、mesos這類開源、方便、好使的容器管理平台有著非常強大的彈性管理能力。

當然,大家聽聞最多的就是docker,總覺得docker就是容器,其實不然,docker是乙個開源的應用容器引擎,他基於lxc核心虛擬化技術實現,提供了一系列更強的功能,像映象,dockerfile等等,當然就不超展開了,咱們點到即止。

容器的發展歷程

本來想直接寫docker知識點的,但是感覺只有了解containers的發展歷程,才能知道技術知識點的來龍去脈,建立起乙個線性的鏈條,把知識點串聯起來。1979 unix v7 在1979年開發unix v7期間,引入了chroot系統呼叫功能。這個功能將程序及其子程序的根目錄更改為檔案系統中的乙個...

什麼是RSS?RSS及其發展歷程

rss是2004年最熱門的網際網路詞彙之一,不過,相對於 部落格 blog 來說,rss的知名度相應會低很多,而且至今還沒有乙個非常貼切的中文詞彙,也許以後無需中文名,大家都習慣於直接叫rss了。rss之所以同blog一樣會被認為是熱門詞彙的乙個原因,個人推測,應該是許多分析人士認識到rss將要對網...

什麼是RSS?RSS及其發展歷程

什麼是rss?rss及其發展歷程 網路營銷教學 www.wm23.com 2005 01 03 rss是2004年最熱門的網際網路詞彙之一,不過,相對於部落格 blog 來說,rss的知名度相應會低很多,而且至今還沒有乙個非常貼切的中文詞彙,也許以後無需中文名,大家都習慣於直接叫rss了。rss之所...