【QCon】精华内容上线92%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

runC 1.0 发布候选版已公布

  • 2016-06-11
  • 本文字数:1311 字

    阅读完需:约 4 分钟

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-06-11 19:001814
用户头像

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

关注

评论

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

【Mysql-InnoDB 系列】事务模型

程序员架构进阶

MySQL 架构 innodb 事务 28天写作

如何让开发人员接受DevSecOps

啸天

DevOps 开发者 DevSecOps 升职加薪 应用安全

读《百度不需要用户》,我似乎懂得了领导者的无奈

李忠良

AI 企业

项目管理系列(1)-如何开好一个周会

Ian哥

项目管理 28天写作

夜莺二次开发指南-资产设备管理

ning

滴滴夜莺 夜莺监控

面试被问AQS、ReentrantLock答不出来?这些知识点让我和面试官聊了半小时!

Java鱼仔

Java 面试 并发 JUC

分布式唯一ID解决方案-雪花算法

JavaPub

Java 分布式

时间之外的颜色「幻想短篇 5/28」

道伟

28天写作

僵尸进程的成因以及僵尸可以被“杀死”吗?

AI乔治

Java 架构 进程

线程池是怎么回收空闲线程的?如果你认为有定时任务,那你就错了!

看点代码再上班

Java 程序员 后端 开发

一文带你快速入门Canal,看这篇就够了!

大数据老哥

大数据 实时数仓 canal

用Rust写点啥:数据结构篇——单向链表

Kurtis Moxley

数据结构 rust

HDFS SHELL详解(6)

罗小龙

hadoop 28天写作 hdfs shell

JFR定位线上问题实例 - JFR导致的雪崩问题定位与解决

AI乔治

Java 架构 线程

夜莺二次开发指南-任务执行中心

ning

滴滴夜莺 夜莺监控

CSS13 - 定位

Mr.Cactus

html/css

发达国家加紧数字货币政策布局

CECBC

数字货币

28 天带你玩转 Kubernetes-- 第五天(玩转Docker)

Java全栈封神

Docker Kubernetes k8s 28天写作

小马哥刷力扣 - LeetCode 9. 回文数

小马哥

LeetCode 算法和数据结构 28天写作

夜莺二次开发指南-用户资源中心

ning

滴滴夜莺 夜莺监控

一次慢查询暴露的隐蔽的问题

AI乔治

Java sql 架构 SQL优化

外行话之不玩游戏,怎么做好游戏?

Justin

游戏 28天写作 外行话

夜莺二次开发指南-监控系统(3)

ning

滴滴夜莺 夜莺监控

28天瞎写的第二百一六天:LumaQQ 和 luma 二三事

树上

28天写作

【Mysql-InnoDB 系列】关于一致读

程序员架构进阶

MySQL 架构 innodb 28天写作

聚焦目标,团队工作不再一盘散沙(上)

一笑

管理 敏捷 目标管理 28天写作

一文学会Java死锁和CPU 100% 问题的排查技巧

AI乔治

Java 架构 死锁 cpu 100%

Deno 双周刊 #1 - Deno 获 2020 JS 开源年度突破奖

hylerrix

typescript deno Node 周刊 V8

读书笔记:《Remote》

lidaobing

28天写作 Remote

未来五年数字经济九大技术趋势,区块链成数字时代刚需!

CECBC

人工智能

关于时间管理的思考

.

28天写作

runC 1.0 发布候选版已公布_语言 & 开发_大愚若智_InfoQ精选文章