写点什么

runC 1.0 发布候选版已公布

2016 年 6 月 11 日

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

  • 完整支持 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 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2016 年 6 月 11 日 19:001493
用户头像

发布了 283 篇内容, 共 87.6 次阅读, 收获喜欢 41 次。

关注

评论

发布
暂无评论
发现更多内容

Hello World !!!

潮湿了我押韵的心情

高并发下的Redis分布式锁

java_wxid

Java redis 高并发 分布式锁 setnx

第 9 周作业 _ 数据分析

园子

单片机如何从上电复位执行到main函数?

不脱发的程序猿

嵌入式软件 单片机 28天挑战 3月日更 上电复位执行到main函数

最火前端Web组态软件(可视化)

尔嵘

可视化数据分析搭建 前端可视化 web组态 托拉拽组态

互联网大厂100道Android面试题助你冲关金三银四!附小技巧

欢喜学安卓

android 程序员 面试 移动开发

中国云基础设施支出创新高,增速全球第一;国内首个区块链特色司法鉴定机构在京成立

京东科技开发者

区块链 人工智能 开发者

nginx配置日志为json格式,nginx按照天实现日志分割,nginx配置负载均衡

Ng

图解 | 原来这就是 IO 多路复用

云流

Java 程序员 架构 面试

使用VUE和Element 创建一个dialog对话框组件的详细过程

尔嵘

nginx做代理访问慢,优化方案

Ng

MySQL四大属性(特性) 底层实现原理

java_wxid

Java MySQL 数据库 面试 底层实现原理

Android内存泄漏检测之LeakCanary2.0(Kotlin版)的实现原理

vivo互联网技术

android kotlin 内存泄漏

将word试卷匹配转换为结构化表格

小小明

Python word

layui使用templet格式化表格数据

剖析Android开发未来的出路在哪里,终局之战

欢喜学安卓

android 程序员 面试 移动开发

AI技术在小程序生态质量保障方向的落地实践

百度Geek说

小程序 AI

MySQL锁等待与死锁问题分析

Simon

MySQL 死锁

关于 JavaScript 闭包

HaiJun

JavaScript 前端 闭包

太厉害了!阿里面试官告诉我的“面试通过要点”,让我成功面进阿里

互联网架构师小马

Java 面试 找工作 应届生 面试求职

批量从Word中提取图片

小小明

Python

HashMap加载因子为什么是0.75?

java_wxid

Java 面试 hashmap HashMap底层原理 加载因子

力扣(LeetCode)刷题,简单题(第12期)

不脱发的程序猿

LeetCode 面试刷题 28天写作 算法面经 3月日更

vue+element中引入百度地图

尔嵘

Vue Element 百度地图

Java岗位阿里+字节+滴滴+美团+腾讯+百度+京东12万字面试题总结

Java架构追梦

Java 阿里巴巴 架构 腾讯 大厂面试题总结

Python实现excel公式格式化工具

小小明

Python Excel

Pandas实战案例-冷空气活动寒潮级别分类

小小明

单线程、多线程和协程的爬虫性能对比

小小明

Python 爬虫

AI技术在小程序生态质量保障方向的落地实践

百度开发者中心

百度智能小程序

产品经理训练营 - 作业六

胡小湖

APK反编译

行者AI

编译

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

技术为帆,纵横四海- Lazada技术东南亚探索和成长之旅

runC 1.0 发布候选版已公布-InfoQ