写点什么

为什么 Sandstorm 不能运行 Docker 应用

  • 2014-08-21
  • 本文字数:963 字

    阅读完需:约 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 解决方案。

2014-08-21 00:401758
用户头像

发布了 219 篇内容, 共 138.0 次阅读, 收获喜欢 191 次。

关注

评论

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

2021最新Java开发者学习路线

策划Java工程师

Java 程序员 后端

netty系列之:netty中的ByteBuf详解

程序那些事

Java Netty nio 程序那些事

【LeetCode】有效三角形的个数Java题解

Albert

算法 LeetCode 8月日更

面试官:展开说说,Spring中Bean对象是如何通过注解注入的?

小傅哥

spring 小傅哥 注解注入

2021最新Java中级面试题目汇总解答

策划Java工程师

Java 程序员 后端

取经之旅第 55 天,Python OpenCV 透视变换前置知识轮廓坐标点

梦想橡皮擦

8月日更

企业需要拥有自己特色的DevOps

用友BIP

Docker 容器 DevOps 微服务

华为云UGO:醒醒!你的异构数据库迁移难题有救了

华为云开发者联盟

数据库 迁移 华为云 异构数据库 UGO

十大排序算法--希尔排序

Ayue、

排序算法 8月日更

CodeDay#8:支付宝都在用的容器技术了解一下

蚂蚁集团移动开发平台 mPaaS

小程序 支付宝小程序 支付宝 移动开发 mPaaS

2021最值得加入的互联网公司有哪些

策划Java工程师

Java 程序员 后端

上K8s,研发团队如何从容一点?

行云创新

容器 k8s

手撸二叉树之二叉搜索树的最近公共祖先

HelloWorld杰少

数据结构与算法 8月日更

用微服务架构方式交付云服务产品

用友BIP

容器 微服务 专属云

ToastUtil实用封装

Changing Lin

8月日更

软件架构模式之微服务架构

架构精进之路

架构 微服务 8月日更

手撕环形队列系列三:多生产者并行写入

实力程序员

程序员 数据结构 C语言 编程开发 环形队列

百度第25季黑客马拉松再秀“技术基因”,累计产生创意超7000个

科技热闻

积极重夺制造霸主地位,英特尔不玩“纳米游戏”了

E科讯

2021我的Java路要怎么走

策划Java工程师

Java 程序员 后端

一次Http Get请求健壮性问题的排查过程

liuzhen007

8月日更

【Flutter 专题】78 图解 Android Native 集成 FlutterBoost 小尝试 (一)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 8月日更

springcloud 微服务日志写入kafka

Rubble

kafka Spring Cloud 8月日更

混合基础设施下,服务网格(Service Mesh)如何对应用进行统一管理

韩陆

极客-大数据-作业4 Hive

西伯利亚鼯鼠

kubernetes入门:简介与基础操作命令

小鲍侃java

8月日更

容器云平台和Kubernetes之间不得不说的那些事

用友BIP

Kubernetes 容器

如何在渲染之前等待 Axios 数据?

DisonTangor

大前端 React axios

架构实战营毕业设计

eoeoeo

架构实战营

JVM

ltc

JVM

SLB 负载均衡实践

若尘

负载均衡 阿里云 弹性负载均衡 8月日更

为什么Sandstorm不能运行Docker应用_DevOps & 平台工程_小盖_InfoQ精选文章