Why Docker?

在虚拟化发展的历程中,虚拟化技术也曾经百花齐放。但是由于种种原因,最终 Docker 成为了当前时代的容器标准。那么究竟是哪些原因让时代选择了 Docker ?本文从时代背景、技术创新、运营理念等方面进行分析。

前篇,时代需要的虚拟化

由于硬件的飞速发展,服务器的性能也随之增强。单个业务的发布无法充分利用硬件资源,导致资源利用率较低;并且,同一套服务器运行多个业务会互相的影响,产生一些列的问题。

在20时机60年年代,虚拟化的概念就已经产生.1961年 IBM709机实现了分时系统,将CPU占用切分为多个极短(1/100sec)时间片,每一个时间片都执行着不同的任务。通过对这些时间片的轮询,这样就可以将一个CPU虚拟化或者伪装成为多个CPU,并且让每一颗虚拟CPU看起来都是在同时运行,这就是虚拟机的雏形。

虚拟化的目的是使用逻辑来表示资源,从而摆脱物理限制的约束。提高物理资源的利用率。主流的虚拟化技术及软件,常见有:MWare workstation(VMWare)、VirtualBox(Oracle)、Hyper-V(Microsoft)、KVM(Redhat)、Xen等。

虚拟化又可以分全虚拟机和半虚拟化,其目的都是在一台强性能的物理机上虚拟出多个互相之间完全独立的虚拟机。主要优势就是能大大提升物理资源利用率的同时,又能将不同的应用完全独立开来。

虚拟机的的方式虚拟化同时引入的问题是,各个虚拟机本身虚拟化资源的消耗较大,这部分资源是业务无法使用的资源。而 Docker 刚好能够解决虚拟机的这个问题。

中篇,Docker的创新

Docker 并不是新技术,而是使用了一种创新的方式来时整合使用已有的技术。Linux 命名空间、控制组和 UnionFS 三大技术支撑了目前 Docker 的实现。

资源隔离

应用隔离

存储

打包方式

尾篇,开源铸就伟大

Docker 的开源让全球的开发都能贡献代码来不断的完善这一产品。

总结

物竞天择,适者生存!