阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

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

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

关注

评论

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

经验分享 | TDengine在智能船舶领域的实践手册

TDengine

数据库 大数据 tdengine 物联网 时序数据库

前端培训:分享web前端面试“区别”题

@零度

前端开发 前端面试

浅谈数仓建设及数据治理 | 社区征文

五分钟学大数据

数仓 新春征文

你使用的是数据结构还是对象?

蜜糖的代码注释

Java 后端开发 2月月更

带你读AI论文:NDSS2020 UNICORN: Runtime Provenance-Based Detector

华为云开发者联盟

漏洞 apt APT攻击 UNICONRN 数据来源分析

鸿蒙轻内核源码分析:文件系统FatFS

华为云开发者联盟

鸿蒙 Fat 文件系统 鸿蒙轻内核 FatFS

混合云模式下,如何定义一款好的 API 网关

API7.ai 技术团队

流量控制 api 网关 微服务治理 Apache APISIX

[JAVA冷知识]为什么动态加载不适合数组?如何动态加载一个数组?

山河已无恙

Java 2月月更

Nacos服务注册与发现的2种实现方法!

王磊

nacos SpringCloud Alibaba

第1章:初识数据库与MySQL----数据库基本概念

乌龟哥哥

MySQL 2月月更

金3银4面试前,把自己弄成卷王!

小傅哥

面试 小傅哥 金三银四 项目学习

Mybatis常用注解中的SQL注入

编程江湖

新年开工新气象|OceanBase 祝大家开工大吉!

OceanBase 数据库

开源 OceanBase 社区版 开工大吉

Nodejs内置模块path与fs模块简单使用

编程江湖

nodejs

HarmonyOS canvas绘制“飞机大战”小游戏,真香!

HarmonyOS开发者

HarmonyOS

王者荣耀商城异地多活架构设计

swallowluo

架构实战营 #架构实战营 「架构实战营」

Go 语言入门很简单:技巧和窍门(Tips and Tricks)

宇宙之一粟

Go 语言 2月月更

使用JMX Exporter监控Rainbond上的Java应用

北京好雨科技有限公司

教你从零搭建Web漏洞靶场OWASP Benchmark

华为云开发者联盟

渗透测试 漏洞 安全测试 漏洞靶场

营销MM让我讲MySQL日志顺序读写及数据文件随机读写原理

华为云开发者联盟

MySQL 磁盘 数据读写 日志顺序读写 数据文件随机读写

try{}catch居然可以隐藏?让我们用函数式接口来实现吧

山河已无恙

Java 2月月更

vivo直播应用技术实践与探索

vivo互联网技术

RTMP 直播技术

JVM进阶(十三):阶段学习回顾

No Silver Bullet

JVM 2月月更 回顾

云原生时代,软件交付有何不同 | 研发效能提升36计

阿里云云效

阿里云 云原生 持续交付 云平台 研发

JVM进阶(十二):JAVA 可视化分析工具

No Silver Bullet

JVM 监控工具 2月月更

火遍网络的KPI异常检测到底什么梗?

乌龟哥哥

2月月更

知名云计算厂商云宏加入龙蜥社区,共同打造信息安全坚实“地基”

OpenAnolis小助手

云计算 Linux 开源 社群运营

蚂蚁大规模 Kubernetes 集群无损升级实践指南【探索篇】

SOFAStack

云原生 etcd #Kubernetes# #k8s SIGMA

DDD[0]·序

陆乘风

领域驱动设计 领域驱动设计DDD 领域驱动设计思想

golang 面试总结

yuexin_tech

golang 面试

也谈向上管理

wood

向上管理 300天创作

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