BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

为什么Sandstorm不能运行Docker应用

| 作者 郭蕾 关注 8 他的粉丝 发布于 2014年8月22日. 估计阅读时间: 3 分钟 | 如何结合区块链技术,帮助企业降本增效?让我们深度了解几个成功的案例。

Sandstorm是由前谷歌工程师Kenton Varda开发的一个开源的个人云平台项目,Sandstorm允许开发者在自己的服务器上通过一个类似App Store的界面来安装自己的应用。它的目标是帮助用户快速简单的在自己的服务器上安装并运行Web应用。近日,Kenton发表了一篇名为《为什么Sandstorm不能运行Docker应用》的文章。

文章首先指出,虽然Sandstorm和Docker的底层技术都是一样的(都是基于相同的Linux内核特性),但它们是两个完全不同的平台。关于Standstorm为什么不能运行Docker应用的问题就像为什么Android不能运行Linux桌面应用的问题一样,它们本身的出发点就不一样。Docker是设计用来在容器内安装并运行现有的服务器软件包,站在应用的角度来看,Docker其实就是Linux;站在用户的角度来看,Docker更像是传统的虚拟机,只不过它性能更好。而Sandstorm做的事情完全不一样,Sandstorm的目标用户并不是开发人员或者管理员,他们可能不知道如何使用数据库或者命令行,Standstorm支持的应用有以下几个特点:

  1. 每个应用都必须有用户界面,用户可以在界面中完成所有的配置选项。
  2. 应用必须能够独立安装并管理数据库。
  3. 应用需要和Sandstorm统一的登录系统相集成。
  4. 用户不需要为不同的应用管理不同的共享模式,Sandstorm支持细粒度的容器,以保证每一个文件都可以在一个单独的容器中。
  5. 授权操作需要通过一种用户可以理解的方式来展现。
  6. 可以一键或者自动完成应用的更新。
  7. 用户会不时地安装恶意程序,Sandstorm需要保证系统的安全。

文章接着解释了为什么Standstorm不直接使用Docker而是自己开发容器。其实Sandstorm使用了很多和Docker相同的技术,比如namespaces、cgroups。但是当涉及到用户空间的工具时,Standstorm发现他们并不需要Docker,Docker工具被设计用来运行Linux软件,而Sandstorm上的应用必须为Sandstorm环境量身定制,所以Standstorm需要提供尽可能少的配置以保证核心系统简单。设置一个Sandstorm sandbox,基于Linux系统的一些函数,可能只需要几百行的代码,但是如果使用Docker,取而代之的是几百行的配置,并且增加了额外的依赖以及维护,另外Docker的也不能满足Sandstorm的一些个性需求。

文章最后也表示Docker很强大,Sandstorm在开发中也使用了Docker,他们很希望看到Docker能替代传统的IaaS解决方案。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT