電子發(fā)燒友App

硬聲App

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

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

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

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

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

資料介紹

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

軟件簡介

1. 概述

1.1. cocker是什么

cocker是我個人用C語言完全自研的容器引擎(對標Docker),主要解決如下工作場景中的痛點:

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

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

  • 鏡像多版本共存管理。

  • (更多...)

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

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

poYBAGJpIe6AHx-GAACJK5HOYtc941.png

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

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

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

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

pYYBAGJpIe-AVWlOAABcSbM0xA8612.png

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

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

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

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

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

pYYBAGJpIfGANZiCAADiNk7zA_A981.png

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

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

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

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

poYBAGJpIfKAZ3jVAAEP8kclkuI675.png

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

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

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

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

poYBAGJpIfSAA1eRAABS-TcskHI046.png

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

1.2.5. 偽終端

pYYBAGJpIfWAZUmmAABCkJkUJRI101.png

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

1.3. 快速使用

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

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

#?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,如果你使用中碰到了問題請告訴我,謝謝 ^_^

源碼托管地址 : 開源中國、github

2.2. 關(guān)于作者

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

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

?

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

評論

查看更多

下載排行

本周

  1. 1使用單片機實現(xiàn)七人表決器的程序和仿真資料免費下載
  2. 2.96 MB   |  44次下載  |  免費
  3. 2聯(lián)想E46L DAOLL6筆記本電腦圖紙
  4. 1.10 MB   |  2次下載  |  5 積分
  5. 3MATLAB繪圖合集
  6. 27.12 MB   |  2次下載  |  5 積分
  7. 4PR735,使用UCC28060的600W交錯式PFC轉(zhuǎn)換器
  8. 540.03KB   |  1次下載  |  免費
  9. 5UCC38C42 30W同步降壓轉(zhuǎn)換器參考設(shè)計
  10. 428.07KB   |  1次下載  |  免費
  11. 6DV2004S1/ES1/HS1快速充電開發(fā)系統(tǒng)
  12. 2.08MB   |  1次下載  |  免費
  13. 7模態(tài)分解合集matlab代碼
  14. 3.03 MB   |  1次下載  |  2 積分
  15. 8美的電磁爐維修手冊大全
  16. 1.56 MB   |  1次下載  |  5 積分

本月

  1. 1使用單片機實現(xiàn)七人表決器的程序和仿真資料免費下載
  2. 2.96 MB   |  44次下載  |  免費
  3. 2UC3842/3/4/5電源管理芯片中文手冊
  4. 1.75 MB   |  15次下載  |  免費
  5. 3DMT0660數(shù)字萬用表產(chǎn)品說明書
  6. 0.70 MB   |  13次下載  |  免費
  7. 4TPS54202H降壓轉(zhuǎn)換器評估模塊用戶指南
  8. 1.02MB   |  8次下載  |  免費
  9. 5STM32F101x8/STM32F101xB手冊
  10. 1.69 MB   |  8次下載  |  1 積分
  11. 6HY12P65/HY12P66數(shù)字萬用表芯片規(guī)格書
  12. 0.69 MB   |  6次下載  |  免費
  13. 7華瑞昇CR216芯片數(shù)字萬用表規(guī)格書附原理圖及校正流程方法
  14. 0.74 MB   |  6次下載  |  3 積分
  15. 8華瑞昇CR215芯片數(shù)字萬用表原理圖
  16. 0.21 MB   |  5次下載  |  3 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935119次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會AVR單片機與C語言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具MDK-Arm免費下載
  14. 0.02 MB  |  73807次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65987次下載  |  10 積分