GMTC全球大前端技术大会(北京站)门票9折特惠截至本周五,点击立减¥480 了解详情
写点什么

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:001473
用户头像

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

关注

评论

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

MySQL 数据查询语言(DQL)& 事务控制语言(TCL)详解

若尘

MySQL

翻译:《实用的Python编程》04_00_Overview

codists

Python

Elasticsearch Mapping Root Object

escray

elastic 七日更 28天写作 死磕Elasticsearch 60天通过Elastic认证考试 3月日更

大数据热是华而不实吗?大数据和小数据有什么本质区别

读字节

大数据 物联网 数据隐私 大数据 Google 小数据

常见的设计模式原则

一个大红包

设计模式 设计原则 28天挑战 3月日更

文字君和ta的朋友们

InfoQ写作平台官方

面向业务的高可用架构设计

架构精进之路

架构设计 七日更 3月日更

虚拟化存储

lenka

产品经理 3月日更

架构学习(2021年03月06日)

张小胖

最全Hive SQL语法、Hive函数及使用注意事项(一)

五分钟学大数据

大数据 Hive SQL 28天写作 3月日更

(28DW-S8-Day15) 在线教育的MOT

mtfelix

在线教育 28天写作 峰值体验 关键时刻 MOT

新消费品品牌的崛起给户外广告带来了哪些新机遇?

󠀛Ferry

七日更 3月日更

要拥有必先懂失去怎接受——浅谈前景理论

Justin

心理学 28天写作 游戏设计

旧区块链思维面临淘汰

CECBC区块链专委会

区块链

18 个 Java8 日期处理的实践,太有用了!

xcbeyond

Java java8 日期处理 3月日更

在有限的时间里,拿到通才的帐号,登入无限的游戏。

叶小鍵

工作中迷迷糊糊,不知道自己想要什么?

一笑

28天写作

【LeetCode】分割回文串Java题解

HQ数字卡

算法 LeetCode 28天写作

如何设计三极管控制继电器电路

不脱发的程序猿

28天写作 电路设计 继电器电路设计 三极管 3月日更

新业务团队应用数字化的4个能力

boshi

数字化转型 七日更

写作平台的一些乱象

ES_her0

28天写作 3月日更

kvm

梅花鹿鹿

kvm

Docker部署ClickHouse监控平台

wjchenge

打造移动版的开发环境

雨夜的博客

php vagrant 移动版开发环境

常用工具幕布高级会员获取

白程序员的自习室

电商管理系统之发票子系统设计(二)

长沙造纸农

架构设计 高并发系统设计 电商 电子发票 发票

关于 Python 中的字符串,我在补充两点,滚雪球学 Python

梦想橡皮擦

Python 28天写作 3月日更

面试官就是这么欺负人:new Object()到底占用几个字节?

xcbeyond

Java java对象分析 3月日更

加快推进数据确权与资产化 发挥区块链技术信用机制优势

CECBC区块链专委会

区块链

专访 | 我与毕玄大师的对话

高翔龙

Java 阿里巴巴 中间件 架构师 访谈录

超干货 (实战经验)结合公司业务分析离线数仓建设实践

五分钟学大数据

大数据 数据仓库 28天写作 3月日更

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