资料介绍
软件简介
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次下载 | 免费
评论
查看更多