新致云王川川:如何简析Docker神器?

文/王川川

Docker是一个开源的应用容器引擎,从狭义上讲Docker是指一个开源项目,详见:https://github.com/docker/docker, 按照其开发团队的定义“Docker - the open-source application container engine”, Docker是一个开放源代码的程序容器引擎.

那么什么是container?这里的container特指 Linux Container, 简称LXC, 按照wikipedia上的定义“LXC (Linux Containers) is an operating-system-level virtualization method for running multiple isolated Linux systems (containers) on a control host using a single Linux kernel.” LXC是一种操作系统层面的虚拟方法,能够在同一个主机上使用同一个Linux内核运行多个不同Linux系统。 我们平常说的Ubuntu, Red Hat, CentOS, CELinux, 等等都是不同的Linux系统,他们使用相同的Linux内核。

Linux内核也是一个开源项目,有Linus创建并维护。在Linux内核2.6.24版本中引入了cgroups的功能,以及namespace功能。这两个功能是LXC的基础,简单来说cgroup提供了资源控制的功能,namespace提供了系统隔离的功能。

Docker又是一个公司的名称, 详见http://www.docker.com/.

容器的核心技术自2006年正式合并进Linux内核已经有十年的历史了,Google一直在利用容器技术,并先后开发了三代容器管理系统,最新一代容器管理系统kubernetes由于近年来容器技术非常火所以越来越受大家关注。Docker却是2013年才成立的一家新公司,Dokcer提供的创新之处在于管理容器内容。在此之前容器内容一般是通过压缩包管理的,Docker提供了便捷的管理容器的内容的工具,其主要用到的技术是镜像分层机制和文件系统的Copy-on-Write. 镜像的分层机制主要是将镜像的基础系统层与应用程序层分离,大量容器可以复用同一个基础系统层;Copy-on-Write的基本原理是只有在修改基础系统层镜像时候才会真正的复制它的内容,如果只读则使用一份公共的基础系统层。Docker一直在快速进化,最近提供的Docker云服务也是非常赞的功能,可以在Docker云平台上管理自己的云主机,非常方便的部署自定义的Docker容器。

从广义上讲Docker是一种新的软件部署革命, 主要有Docker公司提出的一种新的软件分布式部署理念: “Build, Ship, Run”, 基于集装箱革命对传统运输业的巨大影响, 在软件行业引入集装箱的概念. 希望软件开发团队发布的产品包含了其运行环境, 能够直接在另外电脑直接执行. 从这一点讲Docker有点像是静态连接库概念,动态链接库的优点是程序更小,占用内存更小,但是在当前硬盘和内存极其廉价的时代静态连接的安全简单特性就更重要了。

有理由相信, Docker会像集装箱对工业带来的变革一样对软件行业带来深远的影响. Docker带来的几个技术突破:

· 快速: 极大的缩短了产品开发完成到发布的时间,利用持续集成工具可以将这些步骤自动化进行,很多先进的开发团队都利用这种技术快速交付,持续更新,将版本更新的速度提高到每周级别,而以前版本迭代都是以年为单位的。

· 简单: 一句命令 docker run image-Name就可以运行, 再也不需要看什么安装手顺了,很多软件都有依赖系统的其它软件及环境配置,安装配置过程也是极易出错的过程,有许多安装脚本都是在简化这一过程,但是安装脚本要想在不同的系统上运行其难度很大。使用Docker容器完美的解决了这些问题,容器包含了程序需要的一切环境。

· 安全: 软件被限制在沙盒内运行, 不会对系统其它部分产生影响.我们很可能都遇到过安装更新某个软件导致系统其它软件不可用的情况,运行在容器中的软件有自己独立的根目录系统,不会对宿主系统的文件系统进行修改,也不会修改运行在其它容器中的程序的运行环境。

在当前云计算的软件行业革命的背景下, Docker为云部署, 水平扩展, 灰度升级等提供了便利; 各种公有私有的Docker镜像提供了云计算的关键共用组件, 极大的降低了云计算的技术门槛. Docker建立在Iaas(基础设施即服务)之上, 为Paas(平台即服务), SaaS(软件即服务), 提供便利, 不少云供应商提出了CaaS(Container as a Service)的概念. Container在Docker公司以及大量先驱者的推动下已经进入井喷前的最后阶段, 估计用不了多久将成为主流的软件开发部署方法.

现在Docker遇到的一些挑战

虽然在我看来Docker必将给我们软件开发行业带来巨大的革命, 但是现阶段来看Docker还是面临一些挑战, 需要解决.

· 镜像安全问题. 现在Docker Hub以及大量第三方镜像市场都在提供大量的免费的Docker镜像, 但是我认为完全建立在免费基础上不形成商业模式的话, 对其长期健康不利. 现阶段的镜像市场一般都是有云服务供应商免费提供, 主要是方便各自的云服务器用户使用. 我觉应该学习Iphone/Android的APP市场, 建立免费与收费并存的Docker镜像市场, 让一些人专门从事提供优质安全可靠的非免费镜像, 作为商业用户当然更愿意花钱去买可靠的产品, 而普通用户可以继续使用免费镜像.

· 现阶段的CaaS是建立在IaaS之上的, 要想建立Container你要首先建立一个虚拟机, 所以有人把Docker当作类似于Puppet的系统配置工具. 虽然可以在同一台物理/虚拟主机上, 建立多个不同的Docker Container, 但是这些容器之间还是可以共享不少资源, 如何做严格的安全限制, 可以将它们租给不同的客户, 这是个技术上待解决的难题. Container相比虚拟机拥有更快的速度更小的体积更高的效率, 但是在资源隔离方面与虚拟机就没法比了. 有一个叫Hyper的公司提出了一个折衷的方案, 将Docker运行在一个轻量级的虚拟机上, 在速度性能上有少许损耗, 但是拥有了良好的资源隔离. 我个人觉得这项技术是非常有前途的, 虽然暂时还是有不少问题.

· 目前Docker容器主要是运行在Linux内核上,在国内Linux系统的普及率还不是很高,虽然Docker公司也在努力提供Windwos以及Mac版本的Docker工具集,但其本质是通过运行在Windows/Mac上的虚拟机来运行一个Linux系统,在这个Linux系统上再运行容器。对于大部分不熟悉Linux系统的普通用户来说使用起来还是有很大的困难,希望在这方面继续努力优化用户界面,按照Windows/Mac用户的思维来设计图形界面,让这些还不习惯使用Linux的用户也可以方便的体验到Docker带来的便利。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,924评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,902评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,716评论 0 239
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,783评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,166评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,510评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,784评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,476评论 0 196
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,196评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,459评论 2 243
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,978评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,321评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,964评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,046评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,803评论 0 193
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,530评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,420评论 2 265

推荐阅读更多精彩内容