容器 runc kata_runC:小型容器引擎

容器 runc kata

runC是一种轻量级的通用容器运行时,是一种命令行工具,用于根据开放容器倡议(OCI)规范生成和运行容器。 那是短版。 长版:由Docker,Google,IBM,Microsoft,Red Hat和许多其他合作伙伴创建的用于创建通用和标准化运行时规范的治理伞,具有容器的运行时元素的可读规范文档,以及基于可用的实现Docker贡献给OCI的代码。 它包括libcontainer ,它是最初在Docker引擎中使用的原始下层库接口,用于设置我们称为容器的操作系统构造。

鉴于runC是一个具有常规发布节奏的开源项目,您可以在GitHub上找到代码和相应的发布 。 如果您下载或构建runC二进制文件,您将具有运行时规范元素,即JSON容器配置和根文件系统捆绑包,您可以使用runC作为简单的容器执行器来开始使用它所需的一切。 请注意,如果您安装的是Docker 1.11或更高版本,您还将自动在系统上安装runC的最新副本。 它最有可能被命名为docker-runC并安装在/ usr / bin中 ,并且可以在Docker之外使用,就像正常安装runC一样。

使用runC的好处

甚至在OCI和runC出现之前,许多Docker核心引擎开发人员就使用了runC前体nsinit,它允许简化的入口点来运行和调试低级容器功能,而没有整个Docker守护程序接口的开销。 既然存在runC,这肯定是一个持续的用例,尤其是对于可能暴露新的Linux隔离功能的用户。 例如,首先通过runC提供了使用Linux Checkpoint /在用户空间中还原( CRIU)项目的检查点/还原功能,并且现在正准备将其添加到runC上方的Docker守护程序中。 当然,随着runC / OCI扩展到Linux之外,这对于其他操作系统(OS)隔离原语也将是正确的,例如Solaris区域或基于Microsoft Windows的容器,它们都希望通过OCI运行时规范和runC实施具有功能。 。

除了在操作系统层开发新功能之外,runC是一个有用的调试平台,用于查找难以解决的错误,这些错误很难用容器过程上方的整个Docker堆栈进行调试。

runC入门面临的挑战

开发人员可能已经习惯了使用整个Docker生态系统的容器的低摩擦入口点,包括使用DockerHub(或私有注册表)获取图像,以及简单的docker run命令来启用和禁用其容器的各种功能和配置。 使用runC,开发人员必须从其他系统构造或导出文件系统捆绑包,才能为容器创建自己的起点。 他们还需要将具有与各种docker run标志相关的类似“旋钮”的JSON配置文件放在一起,但是必须将它们直接编码为JSON文件,因为runC二进制文件本身具有简单的start,stop,pause等接口。没有标志。

整体集装箱战略

这如何适合开发人员的整体策略可能取决于开发人员的意图和期望的结果。 对于需要更简单的容器执行模型而不需要更广泛的Docker守护程序功能的开发人员,然后将runC与containerd配对使用,这是Docker 1.11及更高版本引擎中使用的另一个Docker开源项目,可能是一个不错的选择。 在西雅图DockerCon上的演讲结束后,我让几个开发人员来了,并分享了他们基于容器化和runC之一或两者构建的完整容器云架构,它们完成了有趣的工作负载和容器生命周期。 但是,在许多情况下,runC可能是较低层的细节,对于开发人员而言,它可能是普遍关注的,也可能不是。

讨论超出了纯runC的范围,我们还没有讨论的一种使用模型是runC与Docker引擎或其他将来与OCI兼容的引擎的可插入性。 早在OCI社区中有项目,如RUNV,runz,和其他人实施与Solaris区域,或一个轻量级的虚拟机管理程序的共同OCI运行规范(参见英特尔清晰集装箱为例)作为操作系统级隔离技术。 runC或类似runC的实现感兴趣的另一种方式是其他隔离技术或操作系统包含功能的开发人员。

映射容器功能,例如seccomp和用户名称空间

因为libcontainer,即为操作系统执行容器隔离原语的实际工作的操作系统层库,是runC的核心,所以任何OS层功能(例如seccomp和用户名称空间)都必须首先在runC中实现。它们可以暴露于更高层次,例如Docker引擎。 这项额外的功能-尝试尚未在更高层公开的runC新功能-吸引了runC另一个吸引力,而且Docker中公开的一些最新功能早在libcontainer和runC中就已可用进入Docker。 这也意味着在开发这些隔离功能或增强的安全性功能期间,runC是使用JSON配置文件测试和试用唯一配置的好工具。

ContainerCon上的演讲中 ,Phil将演示此用例,并演示如何使用JSON配置文件中的seccomp条目尝试打开/关闭使用某些系统调用的功能,并立即观察对应用程序的影响。 他还将展示使用现有开放源代码工具的工作流,该工作流使用当前Docker容器和映像作为输入来创建可运行runC的配置和根文件系统捆绑包,从而简化开发人员使用runC的启动时间。

翻译自: https://opensource.com/life/16/8/runc-little-container-engine-could

容器 runc kata

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 事实上,isulad容器引擎是支持kata安全容器的。isulad是一个开源的轻量级容器运行时,它可以与不同的容器技术进行集成,包括katakata是一个基于虚拟化技术的安全容器,它可以提供更高的安全性和隔离性。isulad集成了kata,可以使用kata安全容器来运行容器。这样可以在保持轻量级的同时,提供更高的安全性。 ### 回答2: isulad容器引擎是一款在中国开发的轻量级容器引擎,主要用于在Linux操作系统上运行容器。它的设计目标是为了提供高性能、高可靠性和高扩展性的容器运行环境。然而,目前isulad容器引擎并不支持kata安全容器kata安全容器是一种基于虚拟化技术的安全容器方案。它通过在每个容器实例内部运行一个轻量级虚拟机来提供隔离和安全性。kata容器与传统容器相比,能够提供更高的安全性和隔离性,保护容器内部的数据和环境免受攻击和恶意代码的侵害。 尽管kata容器在安全性方面具有很大优势,但由于技术实现上的差异,isulad容器引擎并不支持它。这意味着在使用isulad容器引擎时,无法直接使用kata容器提供的安全特性。 如果用户需要使用kata安全容器,可以考虑使用其他容器引擎,例如Docker或者Kubernetes,它们都提供了对kata容器的支持。通过使用这些容器引擎,用户可以轻松地创建、部署和管理kata容器,同时享受到kata容器提供的额外安全性和隔离性。 ### 回答3: isulad容器引擎目前不支持kata安全容器。isulad是华为公司开源的一款容器运行时引擎,它主要用于在Linux操作系统上创建和管理容器实例。isulad注重轻量性和高性能,提供了一系列功能丰富的容器管理工具和API,以满足用户对容器化应用的需求。 但是,isulad并不支持kata安全容器kata是一个针对安全性和性能进行优化的容器运行时,它采用虚拟化技术,通过在宿主机上创建虚拟机来运行容器,提供了更高的隔离性和安全性。 尽管kata安全容器具有许多优点,但是isulad目前还没有整合kata运行时的能力。这可能是因为isulad的设计目标和使用场景与kata不完全一致,或者是因为isulad的开发者团队还没有将kata集成到isulad中。因此,如果用户有需要在isulad中使用kata安全容器的需求,可能需要考虑其他容器引擎或解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值