聊聊Docker和我所遇到的虚拟化技术

在遇到Docker之前遇到过一些其他的类型虚拟化技术,按我所遇到的分为以下几种:

第一种是系统还原类的虚拟化技术。这是我最早接触到的虚拟化技术,在xp上用的一个叫做“冰点还原”的软件。这个软件主要功能就是在系统每次重启时,将系统还原到预先设定的还原点。与普通的还原软件不同,它并不是预先把系统备份,然后在需要还原时恢复指定备份;而是通过一个代理的驱动拦截所有的IO操作。将IO操作重定向到一个临时的位置,并不会操作真实的文件。在下次重启之后即自动销毁,从而达到还原的目的。用这个软件的目的就是为了避免病毒对系统的损坏,在那个杀毒软件盛行的年代,可以让系统”裸奔“。当时还写了一篇如何破解冰点的博文,有兴趣的话可点击此处查看。

第二种应用的软件的虚拟化技术。我熟知的一款是在windows平台上的一款叫做”云端“的软件,这个软件在当时也是红极一时,可惜早已停止开发。它是一种轻量级的应用虚拟化技术,每个装在云端软件中的应用都运行在类似一个沙盒中。他们对系统注册表,系统目录的改动会被映射到一个其他的位置,当某个应用被激活的时候映射关系是存在的,当软件取消激活时,系统会被还原到原来的状态,激活的过程是秒级的。在云端没有关停时,有一个软件仓库,上面有各种”云端化“的应用,一些比较专业的大型软件比如Adobe系列,可以实现一键安装,体验犹如现在手机App的安装。从另一方面讲,它的出现降低了盗版软件的使用门槛, 我想这应该是他关停的原因之一吧。

第三种就是大家所熟知的虚拟机了。这种是我看来最彻底的虚拟化,他在当前运行系统的基础上模拟出了CPU,内存,网络设备等。然后使用普通的系统镜像进行安装。这种虚拟化技术隔离性最好,对资源的占用也是最大的。

在遇到Docker时,我的第一反应就是 “这不就是Windows平台上已经消失的云端吗?” 确实,他和云端确实很相似。他们都是对应用程序进行虚拟化;都有一个仓库,讲究一键运行;他们都对系统无副作用;他们都非常的轻量级。但是Docker与云端还是有着天壤之别的。云端仅仅满足个人需求的PC上的一款虚拟化程序,通过一些比较hack的技术实现虚拟化,并非系统级支持的。而Docker则是Linux服务器端的,经过广泛验证的生产级虚拟化技术, 他背后的容器理论已经是当前微服务,DevOps等技术的关键。并且Docker本身是基于Linux Namespace,cgroups 等原生支持的技术。

参考资料:
https://www.iplaysoft.com/item/1243
https://coolshell.cn/articles/17010.html

0%