runC 1.0 发布候选版已公布

Open Container项目旗下的轻量级通用运行时容器runC最近公布了1.0发布候选版。runC是一种按照OCP规范生成和运行容器的CLI工具,代码已发布至GitHub。

runC 1.0 发布候选版已公布_第1张图片

容器技术逐渐受到用户和社区的欢迎,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的目标是让用户随时随地使用标准化的容器,其中包含大量广受欢迎的功能和特性,例如:

  • 完整支持Linux命名空间,包括用户命名空间。
  • 原生支持Linux的所有安全功能,包括Selinux、Apparmor、seccomp、control groups、capability drop、pivot_root、uid/gid dropping等。
  • 原生支持实时迁移和Windows 10容器。
  • 计划为Arm、Power、Sparc等架构提供原生支持,并直接得到Arm、Intel、Qualcomm、IBM,以及整个硬件制造商生态系统的参与和支持。
  • 计划为前沿硬件功能提供原生支持,例如DPDK、sr-iov、tpm、secure enclave等。
  • 可移植的性能配置文件,以及成为正式标准的配置格式。

此次公布的1.0发布候选版是OCI运行时规范和runC 1.0的首个候选版本,该版本针对创建和启动等命令进行了较大调整。

容器的创建和启动过程现已拆分为两个步骤,通过这样的设计,上层系统可以在用户定义的过程启动前修改容器内容。如果依然希望像之前的版本那样使用runC,则可以使用runc run命令。在该版本中,还可以使用runc state命令获取容器的状态信息。另外可以通过新增的ps命令查看容器内的进程:

除此之外,本次发布的1.0候选版还在下列几个方面有所改进:

  • 为更多架构提供了seccomp支持
  • 更稳定的状态输出
  • 增加了用于动态更新容器资源的update命令
  • 大量其他改进和 man 页面

目前可以将1.3版以上的Docker映像与runC配合使用。此外runC还可配合systemd使用。

社区观点

runC是一种便携的轻量级容器运行时,其中包含了Docker用于与系统中和容器有关的功能进行交互的全部plumbing代码。与生俱来的安全性,适合当今大规模生产环境中的使用,以及与Docker平台其他组件的无关性(纯粹的容器运行时)使得这一技术获得了社区成员的好评。

Linux基金会技术顾问委员会主席兼Parallels公司服务器虚拟化CTO James Bottomley谈到该技术时说:“我们终于可以用统一的方式操作libcontainer 了。通过这个库,我们可以用更为细化的方式将容器功能暴露给[用于运行新一代Docker类应用的]应用程序,同时可以让我们在各种产品中通过更无缝的方式使用我们自己开发的各类工具。”

感谢郭蕾对本文的审校。

给InfoQ中文站投稿或者参与内容翻译工作,请邮件至[email protected]。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们。

你可能感兴趣的:(runC 1.0 发布候选版已公布)