写点什么

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

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

关注

评论

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

60岁代码匠的几篇小作文,解决了大多数程序的迷茫(下)

图灵社区

java 编程

前端开发之Vue事件修饰符和按键修饰符

@零度

Vue 前端开发

Linux下玩转nginx系列(一)——初识nginx及其使用入门

anyRTC开发者

nginx Linux 音视频 WebRTC 服务器

手把手教程|通过部署 Apache Superset 实现 Amazon S3 的数据可视化

亚马逊云科技 (Amazon Web Services)

analytics

iOS——解密RunLoop原理

iOSer

ios iOS面试 ios开发 RunLoop

【网络安全】2022年第一次靶场渗透实战学习

H

网络安全 渗透测试

实战 MongoDB Aggregate

PingCode研发中心

mongo pipeline Expression

物联网场景中灵活实施对设备的控制管理

亚马逊云科技 (Amazon Web Services)

analytics

17 Prometheus之服务发现介绍

穿过生命散发芬芳

Prometheus 1月月更

打造手淘极简包的轻量化框架

阿里巴巴终端技术

ios android 框架设计 移动开发 包大小

IT运维人员日常工作包含哪些?核心任务是什么?工作量多吗?

行云管家

运维 IT运维 服务器运维

聚类算法有哪些?又是如何分类?

郑州埃文科技

数据分析 聚类算法

LeetCode 每日一题 No.1220 统计元音字母序列的数目

DawnMagnet

rust LeetCode 力扣

无服务器应用DevOps最新实践(内附完整演讲+视频)

亚马逊云科技 (Amazon Web Services)

计算

带你玩转Flink流批一体分布式实时处理引擎

华为云开发者联盟

flink 分布式 实时计算 批处理 流处理框架

第二节:SpingBoot单元测试

入门小站

java 编程

建木持续集成平台v2.2.0发布

Jianmu

开源 持续集成 CI/CD

恒源云(GPUSHARE)_实例关机后如何操作迁移?

恒源云

gpu 运维 实例

2022年RPA行业发展十大趋势,六千字长文助你看懂RPA

王吉伟频道

RPA 机器人流程自动化 RPAaaS 超自动化 自动化优先

4 种高速安全混合云解决方案,助力您的云迁移之旅!

亚马逊云科技 (Amazon Web Services)

网络

腾讯自选股如何实现单位小时内完成千万级数据运算

ninetyhe

腾讯 海量数据 分布式,

深入解析Apache Pulsar系列: Broker消息确认的管理

博文视点Broadview

java开发之Redis数据结构

@零度

redis JAVA开发

这8个JS 新功能,你应该去尝试一下

华为云开发者联盟

JavaScript 前端 开发 索引 开发语言

改进企业CRM系统实施的方法

低代码小观

企业管理 CRM 企业管理系统 CRM系统 企业管理工具

在字节,A/B 实验是这么做的!

字节跳动数据平台

大数据 字节跳动 AB testing实战 ab测试

数据安全是指什么?有什么意义?

行云管家

防火墙 信息安全 数据安全 堡垒机

大数据平台中的企业级数仓建设

五分钟学大数据

数据仓库 1月月更

阿里云视频云「 vPaaS 」演绎了怎样的音视频应用开发「未来图景」?

阿里云CloudImagine

阿里云 音视频 低代码 低代码开发平台 视频云

使用Rainbond打包业务模块,实现业务积木式拼装

北京好雨科技有限公司

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