Open Container项目旗下的轻量级通用运行时容器runC最近公布了1.0发布候选版。runC是一种按照OCP规范生成和运行容器的CLI工具,代码已发布至 GitHub 。
容器技术逐渐受到用户和社区的欢迎,Linux基金会早在2015年6月就成立了OCI(Open Container Initiative)组织,旨在围绕容器格式和运行时制定开放的标准。该组织已得到包括Amazon、华为、Google、Microsoft等云供应商的支持。源自Docker的runC是通过开放容器格式标准(OCF, Open Container Format)制定的一种具体实现。
runC的可嵌入特性使得容器可以作为runC的子进程启动,并能在无需运行Docker代理程序的情况下将其嵌套至各种其他系统中。runC以libcontainer为基础开发而来,这种容器技术目前正驱动着全球数百万Docker引擎,用户可以直接通过runC运行Docker映像。
runC的目标是让用户随时随地使用标准化的容器,其中包含大量广受欢迎的功能和特性,例如:
此次公布的1.0发布候选版是OCI运行时规范和runC 1.0的首个候选版本,该版本针对创建和启动等命令进行了较大调整。
容器的创建和启动过程现已拆分为两个步骤,通过这样的设计,上层系统可以在用户定义的过程启动前修改容器内容。如果依然希望像之前的版本那样使用runC,则可以使用 runc run
命令。在该版本中,还可以使用 runc state
命令获取容器的状态信息。另外可以通过新增的 ps
命令查看容器内的进程:
除此之外,本次发布的1.0候选版还在下列几个方面有所改进:
update
命令 目前可以将1.3版以上的Docker映像与runC配合使用。此外runC还可配合systemd使用。
runC是一种便携的轻量级容器运行时,其中包含了Docker用于与系统中和容器有关的功能进行交互的全部plumbing代码。与生俱来的安全性,适合当今大规模生产环境中的使用,以及与Docker平台其他组件的无关性(纯粹的容器运行时)使得这一技术获得了社区成员的好评。
Linux基金会技术顾问委员会主席兼Parallels公司服务器虚拟化CTO James Bottomley谈到该技术时说:“我们终于可以用统一的方式操作libcontainer 了。通过这个库,我们可以用更为细化的方式将容器功能暴露给[用于运行新一代Docker类应用的]应用程序,同时可以让我们在各种产品中通过更无缝的方式使用我们自己开发的各类工具。”
感谢郭蕾对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们。