草庐IT

Docker Container 与 Unikernel 对比

coder 2023-05-06 原文

我最近使用 docker 部署了一个小型 Haskell 应用,使用“scratch-haskell”作为基础镜像。

然后我读到了 Unikernels 和 HALVM。我有点困惑。

我的 docker 容器大约有 6MB 大。我猜一个 Unikernel(具有相同的 haskell 应用程序)的大小大致相同。

Unikernel 直接在 Xen 管理程序上运行,而 docker Image(或通用 LXC)在普通 Linux 发行版上运行,后者在裸机上运行。

现在我可以“选择”运行带有多个最小容器的 Linux 或带有多个小型 Unikernel 的 Xen 机器。

但这两种解决方案的优缺点是什么?一个比另一个更安全吗?它们之间是否存在显着的性能差异?

最佳答案

来自 http://wiki.xenproject.org/wiki/Unikernels

What do Unikernels Provide?

Unikernels normally generate a singular runtime environment meant to enable single applications built solely with that environment. Generally, this environment lacks the ability to spawn subprocesses, execute shell commands, create multiple threads, or fork processes. Instead, they provide a pure incarnation of the language runtime targetted, be it OCaml, Haskell, Java, Erlang, or some other environment.

Unikernels Versus Linux Containers

Much has been made recently of the advantages of Linux Container solutions over traditional VMs. It is said by container advocates that their lightweight memory footprint, quick boot time, and ease of packaging makes containers the future of virtualization. While these aspects of containers are certainly notable, they do not spell the end of the world of the hypervisor. In fact, Unikernels may reduce the long-term usefulness of containers.

Unikernels facilitate the very same desirable attributes described by the container proponents, with the addition of an absolutely splendid security story which few other solutions can match.

因此,如果您只想运行 Haskell 应用程序,Unikernels 可能适合您,并且它们的开销应该比 docker 更少(而且 docker 开销无论如何都非常小),但是如果您的应用程序需要一些准备好的环境,则需要与非 Unikernels 软件 docker 是更好的选择。我想现在说 Unikernel 是否有用或广泛使用还为时过早,只有时间会证明一切。

关于Docker Container 与 Unikernel 对比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30392261/

有关Docker Container 与 Unikernel 对比的更多相关文章

  1. STM32的HAL和LL库区别和性能对比 - 2

    LL库和HAL库简介LL:Low-Layer,底层库HAL:HardwareAbstractionLayer,硬件抽象层库LL库和hal库对比,很精简,这实际上是一个精简的库。LL库的配置选择如下:在STM32CUBEMX中,点击菜单的“ProjectManager”–>“AdvancedSettings”,在下面的界面中选择“AdvancedSettings”,然后在每个模块后面选择使用的库总结:1、如果使用的MCU是小容量的,那么STM32CubeLL将是最佳选择;2、如果结合可移植性和优化,使用STM32CubeHAL并使用特定的优化实现替换一些调用,可保持最大的可移植性。另外HAL和L

  2. 思科与华为设备OSPF配置命令对比 - 2

    思科与华为设备OSPF配置命令对比[Huawei]ospf1//启动OSPF进程,进入OSPF视图Cisco(config)#routerospf110[Huawei]ospf1router-id10.1.1.1//启动OSPF进程,进入OSPF视图,手动输入router-idCisco(config-router)#router-id1.1.1.1[Huawei-ospf-1]area0//创建并进入OSPF区域视图(骨干区域)[Huawei-ospf-1-area-0.0.0.0]network10.0.1.00.0.0.255//配置区域所包含的网段[Huawei-GigabitEthe

  3. Elasticsearch和MongoDB对比 - 2

    文章目录Elasticsearch和MongoDB对比关于ElasticsearchElasticsearch应用场景关于MongoDBMongoDB优点mongodb适用场景Elasticsearch和MongoDB对比Elasticsearch和MongoDB开源许可协议参考Elasticsearch和MongoDB对比关于Elasticsearch官网:https://www.elastic.co/cn/elasticsearch/Elasticistheleadingplatformforsearch-poweredsolutions.Weaccelerateresultsthatma

  4. javascript - PureComponent 与无状态功能组件的性能对比 - 2

    考虑以下React代码:classTodosextendsReact.Component{constructor(props){super(props);this.state={item:'Test',};}render(){return}}classTodoItemextendsReact.PureComponent{render(){return{this.props.item}}}functionTodoItem(props){return{props.item}}上面有一个有状态的父组件Todos和同一个子组件的两个版本TodoItem。其中一个版本是纯组件,另一个是无状态功能

  5. javascript - 如何通过 JavaScript 或 CSS 检查用户是否处于高对比度模式 - 2

    当按下Shift+Left+Alt+Print时,Windows切换到高对比度模式-是否有有机会在网页上检测到它(使用JavaScript或CSS)吗?是否有机会在HTTP-Request(也就是服务器端,例如通过PHP或Ruby)中检测到它? 最佳答案 根据thisarticleaboutusingCSSspritesinhighcontrast,在Windows上的高对比度模式下,背景图像应设置为“无”,并且它还会更改背景颜色。这应该覆盖任何CSS样式表。因此,您可以在初始渲染后执行一些javascript来检测它。查看他的de

  6. javascript - Array.push 与 Array.unshift 的性能对比 - 2

    我在阅读有关数组操作的运行时复杂性的文章时了解到...ECMAScript规范不要求特定的运行时复杂性,因此它取决于特定的实现/JavaScript引擎/运行时行为[1][2].Array.push()以常数和Array.unshift()以线性时间运行,用于稀疏由类似哈希表的数据结构实现的数组[3].现在我想知道push和unshift在densearrays上是否具有相同的常数和线性时间复杂度.Firefox/Spidermonkey中的实验结果证实:现在我的问题:是否有官方文档或引用资料证实观察到的Firefox/Spidermonkey和Chrome/Node/V8的运行时性能

  7. javascript - Date.getTime() 对比日期.now() - 2

    我注意到now()只能由Date对象调用。getTime()只能由日期实例调用。vardd1=newDate();//console.log(dd1.now());//Throwserror->TypeError:ObjectMonAug19201316:28:03GMT-0400(EasternDaylightTime)hasnomethod'now'console.log(dd1.getTime());console.log(Date.now());//console.log(Date.getTime());//Throwserror->TypeError:Objectfuncti

  8. JavaScript event.currentTarget 对比这个 - 2

    event.currentTarget和this有区别吗?性能怎么样? 最佳答案 currentTarget事件属性返回事件监听器触发事件​​的元素。这仅在捕获和冒泡期间特别有用。您也可以使用this关键字,但是当您使用Microsoft事件注册模型时,this关键字不引用HTML元素。请参阅以下链接了解更多信息:http://www.quirksmode.org/js/events_order.html微软模式的问题但是当您使用Microsoft事件注册模型时,this关键字不会引用HTML元素。结合Microsoft模型中缺少类

  9. 【数据可视化】三款主流开源数据可视化工具对比:Superset、DataEase、MetaBase - 2

    现在市场上开源BI产品比较多,各个产品的侧重点不同,有的以报表为主、有的以可视化为主、有的以查询分析为主。这里我们选取了一些主流的开源BI产品,从产品功能、可视化能力、数据源支持以及使用文档等方面进行对比,希望对你有帮助。由Airbnb贡献的轻量级BI产品,目前在GitHub上有3万多颗星,其受欢迎程度可见一斑。Superset提供了Dashboard和多维分析两大类功能,后者可以将制作的结果发布到Dashboard上也可以单独使用。在这里插入图片描述数据源方面,Superset支持CSV、MySQL、Oracle、Redshift、Drill、Hive、Impala、Elasticsearc

  10. javascript - 为什么不为移动设备使用 vanilla Jquery?即与特定于移动设备的基于 jquery 的库 (jqtouch/sencha) 形成对比? - 2

    这似乎是一个基本/愚蠢/显而易见的问题,但我想检查一下:为什么要使用面向移动设备的javascript库(例如jqtouch)而不是直接使用jquery?上下文:我们正在考虑丰富我们网络应用程序的移动View。我在我的android2.1(摩托罗拉机器人)上尝试了各种jqtouch演示。许多UI“功能”演示都失败了(例如动画),尽管演示应用程序(待办事项和世界时钟)运行良好。同样,我使用同一部手机测试了我们网络应用程序的“完整”版本。这个“完整版”下载了大量的javascript,包括完整的jquery1.3.2。该站点运行良好(包括ajax获取和发布)并且不会感觉太慢。(注意:我必须

随机推荐