中国领先的IT技术网站
|
|

2.4.1 libcontainer与runC

《Docker从入门到实战》第2章Docker简介,第1章已经大致了解了容器技术,在本章节中,我们将进一步认识Docker的架构,以及了解Docker与其他容器技术的区别。本节为大家介绍libcontainer与runC。

作者:黄靖钧来源:机械工业出版社|2017-10-17 18:20

CTO训练营 | 12月3-5日,深圳,是时候成为优秀的技术管理者了


2.4  Docker与runC

在2013年Docker刚发布的时候,它是基于LXC的开源容器管理引擎。Docker把LXC复杂的容器创建与使用方式简化为自己的一套命令体系。

随着Docker的发展,原有的LXC不能满足Docker的需求(比如跨平台),于是Docker公司把底层实现都抽象化,底层容器的实现方式变成了一种可变的方案,这就是libcontainer的诞生。从此之后,无论是使用namespace、Cgroups技术或是使用systemd等其他方案,只要实现了libcontainer定义的一组接口,Docker都可以运行。

2.4.1  libcontainer与runC

在DockerCon 2015期间,Docker牵头成立了OCI(Open Container Initiative开放容器计划)组织,这个组织的目的是建立起一个围绕容器的通用标准。

容器格式标准是一种不受上层结构绑定的协议,即不限于某种特定操作系统、硬件、CPU架构、公有云等,这样做的目的是减少因为行业内的恶性竞争,提供一个标准,允许任何人在遵循该标准的情况下开发应用容器技术,这使得容器技术有了一个更广阔的发展空间,OCI下的容器技术不属于任何公司或个人。

早期libcontainer是Docker公司控制的一个开源项目,随着OCI的成立,Docker把libcontainer项目移交给了OCI组织,目前可以在https://github.com/opencontainers/runc中查看libcontainer的源代码,目前libcontainer作为runC项目的一个子项目。

runC就是在libcontainer的基础上进化而来,Docker已经表明未来会使用runC替代libcontainer作为容器runtime的工具。

从名字上可以看出runC是一个runtime工具,而libcontainer只是一个lib库,不是runtime管理工具。runC通过调用libcontainer提供的接口来管理容器。早期runC没有出来之前,libcontainer有一个内置的小工具nsinit,可以用这个内置小工具来管理容器。后来runC基于这个小工具做了改动,并改名为runC。随着runC的不断发展,目前runC已经成为一个功能强大的runtime工具。当前,我们只需要知道runC的核心依旧是libcontainer就可以了。

喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:365934973

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月最赞

读 书 +更多

网管员必读—网络基础

本书共分两篇,15章。其中前6章为网络理论基础篇,介绍的是基本的网络技术,包括计算机网络分类、网络通信协议、IP地址和网线制作等。在第...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊
× Phthon,最神奇好玩的编程语言