写点什么

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

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

关注

评论

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

【参赛总结】第二届云原生编程挑战赛-冷热读写场景的RocketMQ存储系统设计 - Nico

阿里云天池

RocketMQ 云原生

Flink物理分区概念与分类详解

木南曌

flink 实时计算

企业选择MES系统是选择现成的OR定制开发?

万界星空科技

生产管理系统 mes 万界星空科技 定制开发MES

基于LangChain-Chatchat实现的本地知识库的问答应用-快速上手(检索增强生成(RAG)大模型)

汀丶人工智能

langchain 智能问答 rag 检索式增强

技术分享 | 弹窗开发中,如何使用 Hook 封装 el-dialog?

LigaAI

前端 弹窗 对话框 代码简洁

江苏气象AI算法挑战赛亚军比赛攻略_DontMind队

阿里云天池

阿里云 AI 算法

软件测试学习笔记丨测试用例基础概念

测试人

软件测试

ETL如何执行Java脚本

谷云科技RestCloud

Java 脚本 ETL 数据集成工具

MES生产管理系统:私有云、公有云与本地化部署的比较分析

万界星空科技

服务器 云服务 私有云 mes 万界星空科技

苹果挖走大量谷歌人才,建立神秘人工智能实验室;李飞飞创业成立「空间智能」公司丨 RTE 开发者日报 Vol.197

RTE开发者社区

直播预告|第一批 Vision Pro 开发者开始弃坑了吗? 本周六一起听听三位 XR 开发者的真实想法!

RTE开发者社区

Java模块化系统:引领代码革命与性能飞跃

伤感汤姆布利柏

SOL链DApp智能合约代币质押挖矿分红系统开发

区块链软件开发推广运营

dapp开发 区块链开发 链游开发 NFT开发 公链开发

首届云原生编程挑战赛总决赛亚军比赛攻略(ONE PIECE团队)

阿里云天池

Serverless 云原生

价值创造未来:财务规划与资源管理

智达方通

企业管理 资源管理 全面预算

云原生专栏丨基于K8s集群网络策略的应用访问控制技术

inBuilder低代码平台

云原生 #k8s

Web3 游戏周报(4.28 - 5.04)

Footprint Analytics

gamefi web3

【深入浅出Spring原理及实战】「工作实战专题」叫你如何使用另类操作去实现Spring容器注入Bean对象 (1)

码界西柚

Java spring 框架 Bean处理

品高虚拟化后端存储的发展演进

品高云计算

docker攻略,希望能帮助到大家对docker的理解

阿里云天池

Docker 镜像

一键自动化博客发布工具,用过的人都说好(segmentfault篇)

程序那些事

人工智能 工具 程序那些事 openai 自动化工具

AI 数据观 | TapData Cloud + MongoDB Atlas:大模型与 RAG 技术有机结合,落地实时工单处理智能化解决方案

tapdata

Tapdata Cloud 工单处理 大型语言模型LLM 检索增强技术RAG MongoDB Atlas

【深入浅出Spring原理及实战】「开发实战系列」重新回顾一下异常重试框架Spring Retry的功能指南和实战

码界西柚

spring Spring retry 重试机制 spring-retry

【深入浅出Spring原理及实战】「开发实战系列」Spring-Cache扩展自定义(注解失效时间+主动刷新缓存)

码界西柚

spring Spring Cache 缓存控制 缓存能力

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