Docker它是个啥?

新技术愈来愈多,最近不断地被周围的朋友洗脑,俨然再不写点新技术,就没有脸在IT圈里混了。好吧,那让我也拥抱一下开源技术,写写Docker。那Docker究竟是个啥?
安全



Docker中文手册上是这样说的:

Docker是一个开源的引擎,能够轻松的为任何应用建立一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试经过的容器能够批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其余的基础应用平台。
网络



Docker与“集装箱”

咱们常常说Docker它帮助咱们实现了“集装箱”的功能。架构


现实世界中集装箱是这样的,它为咱们解决了货物的运输问题, “集装箱”能够帮助咱们解决各类型号规格尺寸的货物在各类运输工具上方便运输。ide


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1


那么IT技术中的Docker是干什么的呢?原来它是为了帮助咱们解决软件的“运输”问题。它能够将各类应用程序和他们所依赖的运行环境打包成标准的container/p_w_picpath,进而发布到不一样的平台上运行。工具


640?wx_fmt=png&wxfrom=5&wx_lazy=1


因此,在某种程度上,Docker能够看做是用代码编写出来的国际集装箱。Docker能够把任何应用及相关依赖项打包成一个轻量、可移植、自包涵式的容器,该容器拥有标准的操做,从而可以实现自动化。
测试



从集装箱的特色,看Docker

640?wx_fmt=png&wxfrom=5&wx_lazy=1


内容无关性spa

相同的集装箱几乎能够容纳任何类型的货物,Docker也能够封装代码、环境、配置文件,负载及其依赖项。操作系统


硬件无关性3d

集装箱容许把货物从船上运输到火车、卡车上,直到运输到仓库,整个过程无需整理货物或打开容器。Docker使用操做系统基元(例如:LXC)几乎能够在任何平台上运行——虚拟机、裸机、OpenStack、公共IaaS等,而且无需修改。blog


内容的隔离和交互

集装箱无需担忧各类箱子里的货物是什么,它们之间会不会彼此影响,咱们能够堆积运输。Docker让资源、网络和内容隔离,避免依赖性。


自动化

集装箱标准的规格使其易于实现自动化装卸、搬运等,Docker使运行、启动、中止、提交、搜索等都有标准的操做。


高效,快捷

集装箱无需打开或修改,能够在起始两地快速地移动/运输,Docker是轻量级的,一次构建能够随处运行,方便咱们进行快速移动和操做。

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1



那问题来了:Docker和虚拟化的区别是什么?


讲段故事,来和你们解释一下

640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1




古代有一位国王在它的国境里视察,由于路面崎岖不平,还有不少碎石头,刺得国王的脚又痛又麻。

回到了王宫后,他下了一道命令,要将国内全部的道路都铺上一层牛皮。让他本身和全国的人走路再也不受刺痛之苦。众大臣听了国王的话都束手无策,知道这很难。即使杀尽国内全部的牛,也凑不到足够的牛皮来铺路,并且花费昂贵。这时,一个聪明的仆人向国王建言:能够试着用牛皮将脚包起来,大王的脚就不会忍受痛苦了。国王听道而顿悟了,便收回命令,采纳了建议,因而,皮鞋就这样发明了出来了。



引伸到Docker和虚拟化

OK,你们必定想问我,韩梅梅童鞋你想说明什么?回顾一下故事,解决脚痛不方便的方案有二:第1方案是:将全部道路都铺上一层牛皮(如VMware),实在不经济实惠。第2方案是:用两片牛皮包住脚,这就是皮鞋(Docker集装箱)。那么,你领悟到什么呢? 至少明显知道第2方案可带来可观的经济效益。


传统的虚拟化(virtualization)技术就至关于在各道路(实体机器)上铺一层牛皮(VM, 虚拟机),而后让国王的脚(App)在牛皮(VM)上走路(执行)。传统上云平台采起虚拟化手段来知足用户个别的资源需求分配,以及确保其可用性和隔离性。然而不管是KVM仍是Xen等Guest OS都很浪费资源又难于管理, 都不如Docker集装箱(皮鞋)来的更加灵活、快速和节省资源。


好吧,放张比较图让你们看一看


640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1



那问题又来了:Docker会不会取代虚拟化

现阶段,传统的虚拟技术还不会被取代。Docker或者说容器技术和虚拟机并不是简单的取舍关系。目前,不少企业仍在使用虚拟机技术,缘由很简单,他们须要一个高效,安全且高可用的架构。然而,刚刚面世两年的Docker尚未经历沙场考验,CaaS(Container as a Service,容器即服务)概念也是近两年才刚刚出现。不管是应用管理仍是运行维护方面,Docker都还处于发展与完善阶段。


结语

俗话说:天下武学,惟快不破;在更新迭代如此之快的IT更是如此,一晚上成名早已不是什么新闻。Docker 这个技术公司,向咱们证实了,成为一个"国际巨星",只须要一个月。2013年2月决定开源,到2013年3月20日发布Docker0.1,只用了一个月的时间。到今天,一个围绕着Docker的小型初创企业生态体系逐渐造成。Docker前后赢得了Google、微软、Amazon、VMware等巨头的青睐,巨头们纷纷示意将保证本身平台与Docker容器技术的兼容性,Docker势不可挡。