- Docker源碼分析
- 孫宏亮
- 494字
- 2018-12-31 20:27:00
1.3.6 libcontainer
libcontainer是Docker架構(gòu)中一個(gè)使用Go語言設(shè)計(jì)實(shí)現(xiàn)的庫,設(shè)計(jì)初衷是希望該庫可以不依靠任何依賴,直接訪問內(nèi)核中與容器相關(guān)的系統(tǒng)調(diào)用。
正是由于libcontainer的存在,Docker可以直接調(diào)用libcontainer,而最終操作容器的namespaces、cgroups、apparmor、網(wǎng)絡(luò)設(shè)備以及防火墻規(guī)則等。這一系列操作的完成都不需要依賴LXC或者其他包。libcontainer架構(gòu)如圖1-8所示。

圖1-8 libcontainer示意圖
另外,libcontainer提供了一整套標(biāo)準(zhǔn)的接口來滿足上層對(duì)容器管理的需求。或者說,libcontainer屏蔽了Docker上層對(duì)容器的直接管理。又由于libcontainer使用Go這種跨平臺(tái)的語言開發(fā)實(shí)現(xiàn),且本身又可以被上層多種不同的編程語言訪問,因此,很難說未來的Docker一定會(huì)與Linux平臺(tái)緊緊捆綁在一起。Docker Daemon的邏輯完全有可能位于其他非Linux操作系統(tǒng)的平臺(tái)上,僅僅通過libcontainer的遠(yuǎn)程調(diào)用來實(shí)現(xiàn)對(duì)Docker容器的管理。另一方面,libcontainer與Docker Daemon的松耦合設(shè)計(jì),似乎讓用戶感受到了除Linux Container之外其他的容器技術(shù)接入Docker Daemon的可能性。libcontainer承接Linux內(nèi)核與Docker Daemon的同時(shí),也讓Docker的生態(tài)在跨平臺(tái)方面充滿生機(jī)。與此同時(shí),Microsoft在其著名云計(jì)算平臺(tái)Azure中,也添加了對(duì)Docker的支持,可見Docker的開放程度與業(yè)界的火熱度。
暫不談Docker,由于本身完善的功能以及與應(yīng)用系統(tǒng)的松耦合特性,libcontainer很有可能會(huì)在眾多其他以容器為原型的平臺(tái)出現(xiàn),同時(shí)也很有可能催生出云計(jì)算領(lǐng)域全新的項(xiàng)目。
- VMware vSphere 7.0云平臺(tái)運(yùn)維與管理(第2版)
- 高質(zhì)量軟件構(gòu)建方法與實(shí)踐
- 掌握分布式跟蹤:微服務(wù)和復(fù)雜系統(tǒng)性能分析
- Apache Pulsar原理解析與應(yīng)用實(shí)踐
- 鑄魂:軟件定義制造
- 從缺陷中學(xué)習(xí)C/C++
- Swift從入門到精通(正式版)
- 敏捷軟件開發(fā):用戶故事實(shí)戰(zhàn)
- 中國軟件工程師:工作、生活與觀念
- 大規(guī)模組織DevOps實(shí)踐(第2版)
- 深入淺出數(shù)據(jù)結(jié)構(gòu)與算法(微課視頻版)
- 嵌入式軟件調(diào)試技術(shù)
- 鋒利的jQuery
- Kubernetes Operator開發(fā)進(jìn)階
- x86匯編與逆向工程:軟件破解與防護(hù)的藝術(shù)