2014-09-12 10:52:17 +08:00
|
|
|
|
#简介
|
|
|
|
|
|
2014-09-17 13:45:13 +08:00
|
|
|
|
##什么是Docker
|
|
|
|
|
Docker是一个开源项目,诞生于2013年初,最初是dotCloud公司内部的一个业余项目。它基于Google公司推出的Go语言实现。
|
2014-09-17 14:16:45 +08:00
|
|
|
|
项目后来加入了Linux基金会,遵从了Apache 2.0协议,项目代码在[GitHub](https://github.com/docker/docker)上进行维护。
|
2014-09-12 10:52:17 +08:00
|
|
|
|
|
2014-09-17 14:16:45 +08:00
|
|
|
|
Docker自开源后受到广泛的关注和讨论,以至于dotCloud公司后来都改名为Docker Inc。Redhat已经在其RHEL6.5中集中支持Docker;Google也在其PaaS产品中广泛应用。
|
2014-09-11 22:52:28 +08:00
|
|
|
|
|
2014-09-17 13:45:13 +08:00
|
|
|
|
Docker项目的目标是实现轻量级的操作系统虚拟化解决方案。
|
2014-09-18 10:34:52 +08:00
|
|
|
|
Docker的基础是Linux的容器(LXC)等技术。
|
2014-09-17 13:45:13 +08:00
|
|
|
|
|
2014-09-18 10:34:52 +08:00
|
|
|
|
在容器的基础上Docker进行了进一步的封装,让用户不需要去关心容器的管理,使得操作更为简便。用户操作Docker的容器就像操作一个快速轻量级的虚拟机一样简单。
|
2014-09-12 10:52:17 +08:00
|
|
|
|
|
2014-09-17 14:16:45 +08:00
|
|
|
|
下面的图片比较了Docker和传统虚拟化方式的不同之处,可见容器是在操作系统层面上实现虚拟化,直接复用本地主机的操作系统,而传统方式则是在硬件层面实现。
|
2014-09-11 22:52:28 +08:00
|
|
|
|
|
2014-09-17 14:52:55 +08:00
|
|
|
|
![传统虚拟化](../_images/virtualization.png)
|
2014-09-11 22:52:28 +08:00
|
|
|
|
|
2014-09-17 14:52:55 +08:00
|
|
|
|
![Docker](../_images/docker.png)
|
2014-09-12 10:52:17 +08:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
##为什么要使用docker?
|
2014-09-17 13:45:13 +08:00
|
|
|
|
作为一种新兴的虚拟化方式,Docker跟传统的虚拟化方式相比具有众多的优势。
|
2014-09-12 10:52:17 +08:00
|
|
|
|
|
2014-09-17 14:16:45 +08:00
|
|
|
|
首先,Docker容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。
|
|
|
|
|
其次,Docker对系统资源的利用率很高,一台主机上可以同时运行数千个Docker容器。
|
|
|
|
|
|
2014-09-18 10:34:52 +08:00
|
|
|
|
而且容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行10个不同的应用就要起10个虚拟机,而Docker只需要启动10个隔离的应用即可。
|
|
|
|
|
|
2014-09-17 14:16:45 +08:00
|
|
|
|
|