写点什么

为什么 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:402214
用户头像

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

关注

评论

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

做了好几年Java开发,一直碌碌无为,如今靠着这份面试题跟答案,我从15K变成了30K

编程susu

Java 编程 程序员 计算机 技术宅

06. 第三次AI浪潮:有何不同?

Databri_AI

人工智能

sql task6

橙橙橙橙汁丶

SSR 技术概述

编程三昧

SSR 8月日更 服务端渲染

公司刚来的京东架构师:看完我写的spring笔记,甩给了我一份文档

编程菌

Java 编程 程序员 计算机 技术宅

Linux之tr命令

入门小站

Linux

在线JSON转PHP Array工具

入门小站

工具

撒花!!金九银十喜提offer!秋招蚂蚁金服Java研发岗四面

编程菌

Java 编程 程序员 计算机 技术宅

“不服跑个分?” 是噱头还是实力?| 龙蜥技术

OpenAnolis小助手

内核 Cgroups CFS调度器

C#多线程开发-线程基础 01

Andy阿辉

C# 多线程 8月日更 c#多线程

27岁到来之际,我在阿里实现了年薪40W+的小目标

编程菌

Java 编程 程序员 计算机 技术宅

短短29天,应对高峰100W+访问,看浙大如何交出满分答卷

TakinTalks稳定性社区

[架构实战营]模块六作业

xyu

#架构实战营

Go- 包的使用

HelloBug

Go 语言

centos7中docker安装

消失的子弹

Docker Kubernetes 云原生

LeetCode 每日一题「搜索插入位置」

陈皮的JavaLib

Java 面试 算法 LeetCode 8月日更

微信业务架构&学生管理系统架构选型

John

Go- 包的制作

HelloBug

Go 语言 包的制作

区块链在供应链金融应用优势与四类常见模式

CECBC

python实现两台不同主机之间进行通信(客户端和服务端)——Socket

Python研究者

8月日更

实现"双碳"目标,看下纺织业的智慧样本

百度大脑

人工智能

内核热补丁,真的安全么?| 龙蜥技术

OpenAnolis小助手

操作系统 内核 热替换

秒懂消息队列

yuexin_tech

消息队列

Spring的七大模块你了解吗?

4ye

Java spring 架构 后端 8月日更

Rust从0到1-高级特性-函数和闭包进阶

rust 闭包 函数指针

京东三面惨遭被虐,关于redis,高并发,分布式,微服务一窍不通

编程菌

Java 编程 程序员 计算机 技术宅

蚂蚁金服+拼多多+抖音+天猫Java面经合集,金九银十Java开发校招社招福音!

编程susu

Java 编程 程序员 计算机 技术宅

netty系列之:轻轻松松搭个支持中文的服务器

程序那些事

Java Netty 程序那些事

去哪儿网库存搜索在高并发场景下的探索

Qunar技术沙龙

技术 高并发 投票机制

比特币挖矿的未来只能依靠绿色能源?

CECBC

架构训练营第 1 期 模块六作业

高远

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