国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Docker技術(shù)的容器隔離性分析

2017-09-14 06:48:28中國聯(lián)合網(wǎng)絡(luò)通信有限公司軟件研究院蔡志強
電子世界 2017年17期
關(guān)鍵詞:宿主機內(nèi)核命名

中國聯(lián)合網(wǎng)絡(luò)通信有限公司軟件研究院 蔡志強

基于Docker技術(shù)的容器隔離性分析

中國聯(lián)合網(wǎng)絡(luò)通信有限公司軟件研究院 蔡志強

Docker技術(shù)是一種基于Linux操作系統(tǒng)內(nèi)核的虛擬化技術(shù),其主要在于借助對LXC(Linux Container)的擴展而達(dá)到一種虛擬化的解決方案。其能夠保障每一個容器中服務(wù)的運行環(huán)境是保持隔離的,這主要是通過內(nèi)核命名空間的特性來完成。由于Docker隔離機制的獨特性,運行資源的開銷較低,能夠很好地保障虛擬化的密度。文章基于Docker的工作原理展開研究,對Docker的虛擬化隔離技術(shù)及容器隔離方案做出了詳盡的分析與討論。

Docker技術(shù);隔離性;虛擬化

Docker是一個基于LXC的高級應(yīng)用容器引擎,其進(jìn)一步優(yōu)化了容器的使用體驗,提供了容器管理的一些功能,如容器的版本管理、容器發(fā)布、容器移植等,讓使用者更方便的使用容器。Docker具備簡化配置的優(yōu)點,其能夠讓開發(fā)者把應(yīng)用程序以及程序所依靠的運行環(huán)境和配置文件一同打包,達(dá)到“Build Once, Run Everywhere”的目標(biāo),具備資源安全訪問的特質(zhì),能夠完成系統(tǒng)的隔離,具備輕量虛擬化的特質(zhì),與傳統(tǒng)虛擬化對比,其具有啟動速度更快、占用的資源較少的優(yōu)點。Docker最重要的特點在于其支持由任何編程語言和框架開發(fā)的應(yīng)用程序,使得Docker在互聯(lián)網(wǎng)領(lǐng)域被廣泛使用。

1. Docker技術(shù)原理

用戶使用Docker客戶端與Docker Daemon建立通訊,Docker Daemon提供Server的功能使其可以接受Docker客戶端的請求;Engine以任務(wù)的形式處理Docker的內(nèi)部工作,如從鏡像倉庫下載鏡像并以Graph形式保存、建立Docker容器網(wǎng)絡(luò),限制Docker資源配額及執(zhí)行用戶指令等;Libcontainer是一項獨立的容器管理包,實現(xiàn)對容器的具體操作。Docker 客戶端與Docker Daemon能夠通過REST-ful或socket接口通訊。其結(jié)構(gòu)模式詳見圖1。

圖1 Docker結(jié)構(gòu)

2. Docker與虛機機的比較

目前流行的完全虛擬化就是使用了Hypervisor軟件將底層硬件進(jìn)行了抽象模擬,其的好處在于可以支持針對物理硬件設(shè)計的操作系統(tǒng)及軟件,且支持多個異構(gòu)的GuestOS,提供了較好的GuestOS的獨立性,但是其缺點是會損失部分的系統(tǒng)性能。

容器是基于Linux內(nèi)核的虛擬化技術(shù),其依賴內(nèi)核的相關(guān)特性實現(xiàn)隔離,與完全虛擬化的虛擬機不同,它不需要Hypervisor實現(xiàn)虛擬化宿主機的物理硬件,而是直接使用實際的物理硬件資源,更像是一個應(yīng)用程序與宿主機之間的交互。此外,容器使用宿主機的內(nèi)核,省略了內(nèi)核加載的步驟,啟動更加快速。

3. 隔離性

由于每個虛擬機都有自己的GuestOS,從而保證了虛擬機之間的隔離,進(jìn)而達(dá)到同一宿主機上不同虛擬機間互不干擾的目的。Docker容器則是借助系統(tǒng)內(nèi)核來進(jìn)行安全性隔離,即通過namespace進(jìn)行隔離、cgroup進(jìn)行資源限制、capability進(jìn)行權(quán)限限制。但同一臺宿主機的系統(tǒng)內(nèi)核卻是共享的,多個容器的系統(tǒng)調(diào)用均是通過宿主機的內(nèi)核處理,這為容器留下了一定的安全隱患。因此,我們應(yīng)該認(rèn)識到容器并不是全封閉隔離的。

3.1 用戶命名空間隔離

Docker容器使用了Linux內(nèi)核中提供的6種命名空間隔離:

1)UTS 命名空間負(fù)責(zé)主機名和域名的隔離,使得容器都擁有自己的主機名和域名,可以被看作為一個獨立的網(wǎng)絡(luò)節(jié)點。

2)IPC命名空間負(fù)責(zé)信號量、消息隊列和共享內(nèi)存的隔離,其包含了系統(tǒng)IPC標(biāo)示符以及實現(xiàn)POSIX消息隊列的文件系統(tǒng),使得同一個IPC命名空間下的進(jìn)程彼此可見,不同的則相互不可見;

3)PID命名空間負(fù)責(zé)進(jìn)程PID編號的隔離,不同的PID命名空間下的進(jìn)程可以有相同的PID,每個PID命名空間都有獨立的計數(shù)程序。

4)Network命名空間負(fù)責(zé)網(wǎng)絡(luò)資源的隔離,這里的隔離并非真正意義的網(wǎng)絡(luò)隔離,而是把容器的網(wǎng)絡(luò)獨立出來,如同一個獨立的網(wǎng)絡(luò)實體來與外部通信。

5)Mount命名空間負(fù)責(zé)掛載點的隔離,不同Mount命名空間下的文件夠發(fā)生變化互不影響。

6)User命名空間負(fù)責(zé)安全相關(guān)的標(biāo)示符和屬性的隔離,包括用戶ID、用戶組ID、root目錄、密鑰key以及特殊權(quán)限等,該命名空間技術(shù)支持進(jìn)程在容器內(nèi)外可以擁有不同級別的權(quán)限。

3.2 cgroup資源限制

Docker容器通過cgroup來實現(xiàn)組進(jìn)程并管理它們的資源總消耗,分享可用的硬件資源到容器并限制容器的內(nèi)存和CPU的使用,cgroup提供了以下4大功能:

1)資源限制:對任務(wù)使用的資源總量進(jìn)行限制,如應(yīng)用在運行時超過上限配額就會給與提示;

2)優(yōu)先級分配:通過分配的CPU時間片數(shù)量及磁盤IO帶寬大小,實際上就相當(dāng)于控制了任務(wù)的優(yōu)先級;

3)資源統(tǒng)計:可以統(tǒng)計系統(tǒng)的資源使用量,如CPU、內(nèi)存等使用情況;

4)任務(wù)控制:可以對任務(wù)進(jìn)行掛起、恢復(fù)等操作。

3.3 capability權(quán)限限制

從Linux內(nèi)核2.2版本開始,Linux支持把超級用戶不同單元的權(quán)限分離,可以單獨的開啟和禁止,即capability的概念??梢詫apability賦給普通的進(jìn)程,使其可以做root用戶可以做的事情。內(nèi)核在驗證進(jìn)程是否具有某項權(quán)限時,不再驗證該進(jìn)程的是特權(quán)進(jìn)程(有效用戶ID為0)和非特權(quán)進(jìn)程(有效用戶ID非0),而是驗證該進(jìn)程是否具有其進(jìn)行該操作的capability。不合理的禁止capability,會導(dǎo)致應(yīng)用崩潰。目前Docker默認(rèn)啟用一個嚴(yán)格capability限制權(quán)限,同時支持開發(fā)者通過命令行來改變其默認(rèn)設(shè)置,保障可用性的同時又可以確保其安全。

4. 結(jié)束語

Docker技術(shù)通過LXC來實現(xiàn)輕量級的虛擬化,通過namespace進(jìn)行隔離、cgroup進(jìn)行資源限制、capability進(jìn)行權(quán)限限制,以滿足容器的安全隔離。然而由于Docker容器是共享Linux內(nèi)核的,所以我們應(yīng)該認(rèn)識到容器并非嚴(yán)格全封閉,使用Docker容器一定需要注意保證內(nèi)核的安全和穩(wěn)定,并配合必要的監(jiān)控和容錯。

[1]劉思堯,李強,李斌.基于Docker技術(shù)的容器隔離性研究[J].軟件,2015,(04):110-113.

[2]馬越,黃剛.基于Docker的應(yīng)用軟件虛擬化研究[J].軟件,2015,(03): 10-14.

[3]楊莎莎,鄒華.托管Paas平臺安全容器的設(shè)計與實現(xiàn)[J].軟件,2012, 33(12):15.

猜你喜歡
宿主機內(nèi)核命名
萬物皆可IP的時代,我們當(dāng)夯實的IP內(nèi)核是什么?
強化『高新』內(nèi)核 打造農(nóng)業(yè)『硅谷』
命名——助力有機化學(xué)的學(xué)習(xí)
基于嵌入式Linux內(nèi)核的自恢復(fù)設(shè)計
Linux內(nèi)核mmap保護機制研究
有一種男人以“暖”命名
東方女性(2018年3期)2018-04-16 15:30:02
為一條河命名——在白河源
散文詩(2017年17期)2018-01-31 02:34:08
虛擬網(wǎng)絡(luò)實驗室在農(nóng)村職校計算機網(wǎng)絡(luò)技術(shù)教學(xué)中的應(yīng)用研究
嵌入式計算機軟件測試關(guān)鍵技術(shù)的思考
嵌入式計算機軟件測試關(guān)鍵技術(shù)研究
山阳县| 札达县| 西乌珠穆沁旗| 渭南市| 张掖市| 洪雅县| 阳泉市| 神农架林区| 揭东县| 林西县| 达日县| 金湖县| 永福县| 和硕县| 富裕县| 天长市| 永顺县| 云安县| 嘉禾县| 红河县| 云龙县| 永川市| 灵川县| 华安县| 三明市| 周至县| 台北市| 崇州市| 胶南市| 房产| 新干县| 翁牛特旗| 科尔| 黑龙江省| 商南县| 龙江县| 界首市| 鹰潭市| 仙居县| 仙桃市| 舞钢市|