OurJS


OurJS-我们的JS, 我们的技术-IT文摘; 专注JS相关领域;
我们热爱编程, 我们热爱技术;我们是高大上, 有品味的码农;

欢迎您订阅我们的技术周刊


我们会向您分享我们精心收集整理的,最新的行业资讯,技术动态,外文翻译,热点文章;
我们使用第三方邮件列表向您推送,我们不保存您的任何个人资料,注重您的隐私,您可以随时退订,

欢迎分享您的观点,经验,技巧,心得

让我们一起找寻程序员的快乐,探索技术, 发现IT人生的乐趣;


本网站使用缓存技术每次加载仅需很小流量, 可在手机中流畅浏览;
如果您发现任何BUG,请即时告知我们: ourjs(at)ourjs.com

Docker究竟是什么,为什么这么流行,它的优点和缺陷有哪些?


分享到
分类 技术前沿   关键字 开源   发布 kris  1411105572987
注意 转载须保留原文链接,译文链接,作者译者等信息。  
Docker是什么?

简单得来说,Docker是一个由GO语言写的程序运行的“容器”(Linux containers, LXCs); 目前云服务的基石是操作系统级别的隔离,在同一台物理服务器上虚拟出多个主机。Docker则实现了一种应用程序级别的隔离; 它改变我们基本的开发、操作单元,由直接操作虚拟主机(VM),转换到操作程序运行的“容器”上来。

Docker是为开发者和系统管理员设计的,用来发布和运行分布式应用程序的一个开放性平台。由两部分组成: 
Docker Engine: 一个便携式、轻量级的运行环境和包管理器。(注* 单OS vs 单线程,是不是跟NodeJS特别像?)
Docker Hub: 为创建自动化工作流和分享应用创建的云服务组成。(注* 云端镜像/包管理 vs npm包管理,是不是跟npm特别像?)

从2013年3月20日,第一个版本的Docker正式发布到 2014年6月 Docker 1.0 正式发布,经历了15个月。 虽然发展历程很短,但Docker正在有越来越流行的趋势。

其实Container技术并非Docker的创新,HeroKu, NodeJitsu 等云服务商都采用了类似这种轻量级的虚拟化技术,但Docker是第一个将这这种Container技术大规模开源并被社区广泛接受的。

好的部分


Docker相对于VM虚拟机的优势十分明显,那就是轻量和高性能和便捷性, 以下部分摘自: KVM and Docker LXC Benchmarking with OpenStack  


运行时的性能可以获取极大提升(经典的案例是提升97%)
管理操作(启动,停止,开始,重启等等) 都是以秒或毫秒为单位的。

敏捷


像虚拟机一样敏捷,而且会更便宜,在bare metal(裸机)上布署像点个按钮一样简单。

灵活


将应用和系统“容器化”,不添加额外的操作系统,

轻量


你会拥有足够的“操作系统”,仅需添加或减小镜像即可。在一台服务器上可以布署100~1000个Containers容器。

便宜


开源的,免费的,低成本的。由现代Linux内核支持并驱动。注* 轻量的Container必定可以在一个物理机上开启更多“容器”,注定比VMs要便宜。

生态系统


正在越来越受欢迎,只需要看一看Google的趋势就知道了, docker or LXC.
还有不计其数的社区和第三方应用。

云支持


不计其数的云服务提供创建和管理Linux容器框架。

有关Docker性能方面的优势,还可参考此IBM工程师对性能提升的评测,从各个方面比VMs(OS系统级别虚拟化)都有非常大的提升。

Performance Characteristics of VMs vs Docker Containers by Boden Russel (IBM)
Performance characteristics of traditional v ms vs docker containers


有争论的部分


任何项目都会有争论,就像Go,像NodeJS, 同样Docker也有一些。

能否彻底隔离


在超复杂的业务系统中,单OS到底能不能实现彻底隔离,一个程序的崩溃/内存溢出/高CPU占用到底会不会影响到其他容器或者整个系统?很多人对Docker能否在实际的多主机的生产环境中支持关键任务系统还有所怀疑。 注* 就像有人质疑Node.JS单线程快而不稳,无法在复杂场景中应用一样

不过可喜的是,目前Linux内核已经针对Container做了很多改进,以支持更好的隔离。

GO语言还没有完全成熟


Docker由Go语言开发,但GO语言对大多数开发者来说比较陌生,而且还在不断改进,距离成熟还有一段时间。此半git、半包管理的方式让一些人产生不适。

被私有公司控制


Docker是一家叫Dotcloud的私有公司设计的,公司都是以营利为目的,比如你没有办法使用源代码编绎Docker项目,只能使用黑匣子编出的Docker二进制发行包,未来可能不是完全免费的。 目前Docker已经推出面向公司的企业级服务(咨询、支持和培训)。

社区评论 ( Beta版 )
OnceDoc 您自己的企业内容管理系统——文档、流程、知识库、报表、网盘All In One

访问404页面,寻找丢失儿童
 热门文章 - 分享最多
  1. NodeBots-JavaScript在智能设备驱动(物联网)中的崛起
  2. CSS的力量:用一个DIV画图
  3. 内存管理技巧:如何避免JavaScript的内存泄露
  4. 微软Azure云推出基于JSON的NoSQL数据库DocumentDB
  5. 响应式设计在图片上的应用: 一个HTML元素如何让Web更快
  6. 前置逗号是不好的JavaScript代码书写习惯吗?
  7. CSS垂直水平完全居中手册
  8. 今天我去面试, 受打击了:你是学 .net 的吧?
  9. JavaScript中匿名函数和命名函数的性能差异
  10. LowDB - 基于Node的纯Json文件数据库
  11. AirJD-简单好用的免费建站工具

 相关阅读 - 技术前沿
  1. JavaScript有可能取代AppleScript成为OS X平台的默认编程脚本
  2. NodeBots-JavaScript在智能设备驱动(物联网)中的崛起
  3. 响应式设计在图片上的应用: 一个HTML元素如何让Web更快
  4. 微软Azure云推出基于JSON的NoSQL数据库DocumentDB
  5. Chrome V8将实现ES6的类语法(class)
  6. 自己动手写CSS流式(响应式)布局
  7. 为JavaScript设计一个指数操作(运算)符
  8. TJ Holowaychuk将Express维护权移交给StrongLoop
  9. 主流搜索引擎闯入Linux命令行世界
  10. Android即将支持GO语言,从游戏开始

 关键字 - 开源
  1. Mongoose学习参考文档——基础篇
  2. 开源Node.js商城:基于Thinkjs+Mysql的开源微信小程序商城
  3. 使用NodeJS搭建邮件自动发送服务器
  4. NodeJS 文件(夹)压缩/解压方案(zip/unzip)-Linux上zip相关命令
  5. QRCode:用纯JavaScript实现的微信二维码图片生成器
  6. Stop-Server:用手机关闭你的电脑
  7. 几款开源的图形化Redis客户端管理软件
  8. Node.JS如何调用Chrome打开浏览器链接地址
  9. 开源的多行字符串工具: 在JS中整段地写HTML
  10. 15个最好用的Node.JS后端框架

 欢迎订阅 - 技术周刊

我们热爱编程, 我们热爱技术; 我们是高端, 大气, 上档次, 有品味, 时刻需要和国际接轨的码农; 欢迎您订阅我们的技术周刊; 您只需要在右上角输入您的邮箱即可; 我们注重您的隐私,您可以随时退订.
加入我们吧! 让我们一起找寻码农的快乐,探索技术, 发现IT人生的乐趣;


 关注我们

我们的微信公众号: ourjs-com
打开微信扫一扫即可关注我们:
IT文摘-程序员(码农)技术周刊

ourjs官方微信号