電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>cocker C語(yǔ)言實(shí)現(xiàn)的容器引擎

cocker C語(yǔ)言實(shí)現(xiàn)的容器引擎

2022-05-10 | zip | 1.56 MB | 次下載 | 2積分

資料介紹

授權(quán)協(xié)議 LGPL
開(kāi)發(fā)語(yǔ)言 C/C++
軟件類型 開(kāi)源軟件

軟件簡(jiǎn)介

1. 概述

1.1. cocker是什么

cocker是我個(gè)人用C語(yǔ)言完全自研的容器引擎(對(duì)標(biāo)Docker),主要解決如下工作場(chǎng)景中的痛點(diǎn):

  • 原生支持多進(jìn)程架構(gòu)的容器使用模式,無(wú)須引入第三方組件。

  • 按虛擬主機(jī)方式管理容器,交互式構(gòu)建鏡像,寫(xiě)過(guò)復(fù)雜Dockerfile的人都深惡痛絕。

  • 鏡像多版本共存管理。

  • (更多...)

cocker使用到了以下Linux底層技術(shù):LXC、cgroup、overlayfs、iptablesptms等。

1.2. 系統(tǒng)架構(gòu)

poYBAGJpIe6AHx-GAACJK5HOYtc941.png

在LXC中,容器只是內(nèi)核命名空間隔離的根進(jìn)程以及子進(jìn)程樹(shù),隔離域有主機(jī)名字、進(jìn)程空間、根文件系統(tǒng)、IPC、網(wǎng)絡(luò)等。cocker完整的實(shí)現(xiàn)了以上所有隔離域,在容器管理設(shè)計(jì)上傾向于虛擬主機(jī)方式,也支持類似Docker的單進(jìn)程方式。

cocker自帶了容器根進(jìn)程,負(fù)責(zé)通過(guò)偽終端方式橋接容器內(nèi)外,而不是必須通過(guò)ssh。

cgroup負(fù)責(zé)隔離域的系統(tǒng)資源管控,包括CPU、內(nèi)存等。

1.2.1. 狀態(tài)遷移圖

pYYBAGJpIe-AVWlOAABcSbM0xA8612.png

cocker鏡像可以本地構(gòu)建或從鏡像庫(kù)上傳下載,鏡像庫(kù)目前只支持ssh服務(wù)端,后續(xù)版本中會(huì)加入cocker原生服務(wù)器。

cocker鏡像允許不同版本共存,創(chuàng)建容器時(shí)可以指定鏡像版本,或者默認(rèn)最新版。鏡像可以復(fù)制和刪除,也可以修改版本號(hào)。

cocker容器創(chuàng)建出來(lái)后可以啟動(dòng)、關(guān)閉和銷(xiāo)毀。修改容器屬性如虛擬IP、端口映射和卷映射必須在容器關(guān)閉狀態(tài)下進(jìn)行。

cocker鏡像可以轉(zhuǎn)化為cocker容器便于交互式修改,然后再轉(zhuǎn)化回來(lái)。

1.2.2. 層疊文件系統(tǒng)

pYYBAGJpIfGANZiCAADiNk7zA_A981.png

層疊文件系統(tǒng)是多鏡像容器的存儲(chǔ)基礎(chǔ),cocker采用overlayfs作為其層疊文件系統(tǒng)引擎,可以疊加幾乎無(wú)限的鏡像層。

cocker的鏡像和容器等都存放在環(huán)境變量COCKER_HOME指向的主目錄中,所以規(guī)劃其容量是使用前必須要考慮的問(wèn)題。如果沒(méi)有設(shè)置環(huán)境變量COCKER_HOME,則默認(rèn)指向/var/cocker。

COCKER_HOME主目錄中有鏡像主目錄images、容器主目錄containers、ssh鏡像倉(cāng)庫(kù)srepo,以及日志文件cocker.log。

1.2.3. 網(wǎng)絡(luò)

poYBAGJpIfKAZ3jVAAEP8kclkuI675.png

cocker支持三種網(wǎng)絡(luò)模型:HOST、CUSTOM和BRIDGE。

網(wǎng)絡(luò)模型 說(shuō)明
HOST 無(wú)預(yù)置網(wǎng)絡(luò)環(huán)境
CUSTOM 僅僅預(yù)置網(wǎng)絡(luò)命名空間,不創(chuàng)建容器內(nèi)外網(wǎng)卡等,由完全由用戶自設(shè)置
BRIDGE 預(yù)置以NAT方式的容器向宿主機(jī)的網(wǎng)絡(luò)連通方式、自定義多組指定端口映射轉(zhuǎn)發(fā)的宿主機(jī)向容器的網(wǎng)絡(luò)連通方式

首次執(zhí)行cocker會(huì)創(chuàng)建網(wǎng)橋設(shè)備cocker0,網(wǎng)段為166.88.0.x。

1.2.4. 系統(tǒng)資源限制

poYBAGJpIfSAA1eRAABS-TcskHI046.png

cocker目前只實(shí)現(xiàn)了CPU核分配、時(shí)間片占用百分比分配、內(nèi)存分配,其它系統(tǒng)資源在后續(xù)版本中會(huì)逐漸完善。

1.2.5. 偽終端

pYYBAGJpIfWAZUmmAABCkJkUJRI101.png

自帶容器根進(jìn)程接受客戶端cocker連接后會(huì)創(chuàng)建偽終端會(huì)話,就像登錄到虛擬主機(jī)上命令交互一樣,無(wú)需使用ssh。

1.3. 快速使用

使用主控工具cocker快速創(chuàng)建一個(gè)小型測(cè)試鏡像,里面調(diào)用了自帶腳本cocker_install_test.sh構(gòu)建根文件系統(tǒng)。

然后使用指令-a boot基于剛剛創(chuàng)建的鏡像test啟動(dòng)一個(gè)容器test,并且直接打開(kāi)一個(gè)會(huì)話連接到容器中的偽終端...退出偽終端后,使用指令-a shutdown關(guān)閉容器,最后使用指令-a destroy銷(xiāo)毀容器。

#?cocker?-a?install_test
OK
#?cocker?-s?images
image_id???????????????????????version????modify_datetime?????size??????
--------------------------------------------------------------------
test???????????????????????????_??????????2018-11-10T09:21:12?24?MB
#?cocker?-a?create?-m?test?-c?test
OK
#?cocker?-a?boot?-c?test?-t???
connect?to?container?ok
---?Welcome?to?cocker?contrainer?---

[root@test?/root]?exit
logout
#?cocker?-a?shutdown?-c?test
OK
#?cocker?-a?destroy?-c?test
OK

...

2. 最后

2.1. 關(guān)于cocker

歡迎使用cocker,如果你使用中碰到了問(wèn)題請(qǐng)告訴我,謝謝 ^_^

源碼托管地址 : 開(kāi)源中國(guó)、github

2.2. 關(guān)于作者

厲華,主手C,寫(xiě)過(guò)小到性能卓越方便快捷的日志庫(kù)、HTTP解析器、日志采集器等,大到交易平臺(tái)/中間件等,分布式系統(tǒng)實(shí)踐者,容器技術(shù)愛(ài)好者,目前在某城商行負(fù)責(zé)基礎(chǔ)架構(gòu)。

通過(guò)郵箱聯(lián)系我 : 網(wǎng)易、Gmail

?

下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評(píng)論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊(cè)
  2. 1.06 MB  |  532次下載  |  免費(fèi)
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費(fèi)
  5. 3TC358743XBG評(píng)估板參考手冊(cè)
  6. 1.36 MB  |  330次下載  |  免費(fèi)
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費(fèi)
  9. 5元宇宙深度解析—未來(lái)的未來(lái)-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費(fèi)
  11. 6迪文DGUS開(kāi)發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費(fèi)
  13. 7元宇宙底層硬件系列報(bào)告
  14. 13.42 MB  |  182次下載  |  免費(fèi)
  15. 8FP5207XR-G1中文應(yīng)用手冊(cè)
  16. 1.09 MB  |  178次下載  |  免費(fèi)

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費(fèi)
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費(fèi)
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費(fèi)
  7. 4開(kāi)關(guān)電源設(shè)計(jì)實(shí)例指南
  8. 未知  |  21549次下載  |  免費(fèi)
  9. 5電氣工程師手冊(cè)免費(fèi)下載(新編第二版pdf電子書(shū))
  10. 0.00 MB  |  15349次下載  |  免費(fèi)
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費(fèi)
  13. 7電子制作實(shí)例集錦 下載
  14. 未知  |  8113次下載  |  免費(fèi)
  15. 8《LED驅(qū)動(dòng)電路設(shè)計(jì)》 溫德?tīng)栔?/a>
  16. 0.00 MB  |  6656次下載  |  免費(fèi)

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費(fèi)
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費(fèi)
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費(fèi)
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費(fèi)
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費(fèi)
  11. 6電路仿真軟件multisim 10.0免費(fèi)下載
  12. 340992  |  191187次下載  |  免費(fèi)
  13. 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  14. 158M  |  183279次下載  |  免費(fèi)
  15. 8proe5.0野火版下載(中文版免費(fèi)下載)
  16. 未知  |  138040次下載  |  免費(fèi)