什么是Docker

来源:互联网 发布:安卓麻将游戏源码 编辑:程序博客网 时间:2024/06/04 21:33

转自:http://cloud.51cto.com/art/201410/453718.htm

 

上面的图基本就代表了Docker的作用。

为什么大家都追捧容器和Docker呢?James Bottomley是Parallels公司的服务器虚拟化首席技术官,也是一位知名的Linux内核开发人员。他向我解释,Hyper-V、KVM和Xen等虚拟机管理程序都“基于虚拟化硬件仿真机制。这意味着,它们对系统要求很高。”


然而,容器却使用共享的操作系统。这意味着它们在使用系统资源方面比虚拟机管理程序要高效得多。容器不是对硬件进行虚拟化处理,而是驻留在单单一个Linux实例上。这反过来意味着,你可以“丢弃没有用的99.9%的虚拟机垃圾,剩下一个小巧简洁的胶囊式容器,里面含有你的应用程序,”Bottomley如是说。


Docker建立在LXC的基础上。与任何容器技术一样,就该程序而言,它有自己的文件系统、存储系统、处理器和内存等部件。容器与虚拟机之间的区别主要在于,虚拟机管理程序对整个设备进行抽象处理,而容器只是对操作系统内核进行抽象处理。

这反过来意味着:虚拟机管理程序能做容器做不了的一件事就是,使用不同的操作系统或内核。所以,举例说,你可以使用微软Azure,同时运行Windows Server2012的实例和SUSE Linux企业级服务器的实例。至于Docker,所有容器都必须使用同样的操作系统和内核。

另一方面,如果你只是想让尽可能多的服务器应用实例在尽可能少的硬件上运行,可能不大关心运行多个操作系统虚拟机。要是同一应用程序的多个副本正是你需要的,那么你会喜欢上容器。


Docker带来了之前技术所没有的几个新特点。第一是,与之前的方法相比,Docker让容器部署和使用起来更容易、更安全。此外,由于Docker与其他容器领域的巨擘进行了合作,包括Canonical、谷歌、红帽和Parallels,共同开发其关键的开源组件libcontainer,它为容器带来了迫切需要的标准化。

与此同时,广大开发人员可以使用Docker封装、交付和运行任何应用程序,应用程序成为轻型的、可移植的、自给自足的LXC容器,可以在任何地方运行。正如Bottomley告诉我,“容器让你立即享有应用程序可移植性。”



也可以看下这篇文章,Docker的资源隔离:http://www.freebuf.com/articles/system/69809.html


0 0