資料介紹
軟件簡介
1. 概述
1.1. cocker是什么
cocker
是我個人用C語言完全自研的容器引擎(對標Docker
),主要解決如下工作場景中的痛點:
-
原生支持多進程架構的容器使用模式,無須引入第三方組件。
-
按虛擬主機方式管理容器,交互式構建鏡像,寫過復雜Dockerfile的人都深惡痛絕。
-
鏡像多版本共存管理。
-
(更多...)
cocker
使用到了以下Linux底層技術:LXC
、cgroup
、overlayfs
、iptables
、ptms
等。
1.2. 系統架構
在LXC中,容器只是內核命名空間隔離的根進程以及子進程樹,隔離域有主機名字、進程空間、根文件系統、IPC、網絡等。cocker
完整的實現了以上所有隔離域,在容器管理設計上傾向于虛擬主機方式,也支持類似Docker
的單進程方式。
cocker
自帶了容器根進程,負責通過偽終端方式橋接容器內外,而不是必須通過ssh
。
cgroup
負責隔離域的系統資源管控,包括CPU、內存等。
1.2.1. 狀態遷移圖
cocker
鏡像可以本地構建或從鏡像庫上傳下載,鏡像庫目前只支持ssh
服務端,后續版本中會加入cocker
原生服務器。
cocker
鏡像允許不同版本共存,創建容器時可以指定鏡像版本,或者默認最新版。鏡像可以復制和刪除,也可以修改版本號。
cocker
容器創建出來后可以啟動、關閉和銷毀。修改容器屬性如虛擬IP、端口映射和卷映射必須在容器關閉狀態下進行。
cocker
鏡像可以轉化為cocker
容器便于交互式修改,然后再轉化回來。
1.2.2. 層疊文件系統
層疊文件系統是多鏡像容器的存儲基礎,cocker采用overlayfs作為其層疊文件系統引擎,可以疊加幾乎無限的鏡像層。
cocker
的鏡像和容器等都存放在環境變量COCKER_HOME
指向的主目錄中,所以規劃其容量是使用前必須要考慮的問題。如果沒有設置環境變量COCKER_HOME
,則默認指向/var/cocker
。
COCKER_HOME
主目錄中有鏡像主目錄images
、容器主目錄containers
、ssh
鏡像倉庫srepo
,以及日志文件cocker.log
。
1.2.3. 網絡
cocker
支持三種網絡模型:HOST、CUSTOM和BRIDGE。
網絡模型 | 說明 |
---|---|
HOST | 無預置網絡環境 |
CUSTOM | 僅僅預置網絡命名空間,不創建容器內外網卡等,由完全由用戶自設置 |
BRIDGE | 預置以NAT方式的容器向宿主機的網絡連通方式、自定義多組指定端口映射轉發的宿主機向容器的網絡連通方式 |
首次執行cocker
會創建網橋設備cocker0
,網段為166.88.0.x
。
1.2.4. 系統資源限制
cocker
目前只實現了CPU核分配、時間片占用百分比分配、內存分配,其它系統資源在后續版本中會逐漸完善。
1.2.5. 偽終端
自帶容器根進程接受客戶端cocker
連接后會創建偽終端會話,就像登錄到虛擬主機上命令交互一樣,無需使用ssh
。
1.3. 快速使用
使用主控工具cocker快速創建一個小型測試鏡像,里面調用了自帶腳本cocker_install_test.sh
構建根文件系統。
然后使用指令-a boot
基于剛剛創建的鏡像test
啟動一個容器test
,并且直接打開一個會話連接到容器中的偽終端...退出偽終端后,使用指令-a shutdown
關閉容器,最后使用指令-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. 關于cocker
歡迎使用cocker,如果你使用中碰到了問題請告訴我,謝謝 ^_^
2.2. 關于作者
厲華,主手C,寫過小到性能卓越方便快捷的日志庫、HTTP解析器、日志采集器等,大到交易平臺/中間件等,分布式系統實踐者,容器技術愛好者,目前在某城商行負責基礎架構。
- C語言實現Web參數傳遞 2次下載
- 單片機實現24C02存儲上次使用中狀態的C語言實例 9次下載
- CRC校驗算法原理及c語言實現 9次下載
- 累加校驗和C語言實現
- 使用單片機實現999累減的C語言實例免費下載 7次下載
- 使用單片機實現數碼管消隱的C語言實例免費下載 15次下載
- 使用C++語言實現的解題的實例說明 6次下載
- 使用C語言實現靜態網頁的代碼免費下載 2次下載
- 使用C語言實現抽獎系統的設計資料和源代碼說明 12次下載
- 如何使用C語言實現軟復位詳細資料說明
- 4個重要算法C語言實現源代碼 12次下載
- C++語言實現火車排序功能 2次下載
- PID控制算法的C語言實現(完整版) 0次下載
- DSP算法的c語言實現 0次下載
- CRC算法原理及C語言實現
- 一個使用Java語言實現的向量化BLAS庫VectorBLAS 1024次閱讀
- 西門子博途S7-1200使用SCL語言實現雙重循環 6089次閱讀
- C語言實現《別碰白塊》小游戲!全部代碼+思路注釋 1108次閱讀
- 怎么用C語言實現多態 1871次閱讀
- 如何使用C語言實現動態擴容的string 1929次閱讀
- C語言模擬實現strcmp函數 2574次閱讀
- 使用C語言實現萬年歷星期速算法的源代碼免費下載 2994次閱讀
- 可用于嵌入式系統的傅立葉變換的C語言實現方法 1457次閱讀
- C語言作為高級編程語言中的一門“低級”語言為什么要學習? 8014次閱讀
- C語言實現簡單的基數排序 1745次閱讀
- 電路板排列問題 回溯(C語言) 5823次閱讀
- 小波去噪c語言程序 1.4w次閱讀
- c語言實現fifo算法及代碼 1.7w次閱讀
- c語言實現des加密算法詳細過程 3.5w次閱讀
- 實數FFT算法的設計及其C語言實現 1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多