2014-10-14 05:25:01 +00:00
|
|
|
|
## 为什么要使用 Docker?
|
|
|
|
|
作为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具有众多的优势。
|
2014-09-25 09:23:05 +00:00
|
|
|
|
|
2014-10-14 05:25:01 +00:00
|
|
|
|
首先,Docker 容器的启动可以在秒级实现,这相比传统的虚拟机方式要快得多。
|
|
|
|
|
其次,Docker 对系统资源的利用率很高,一台主机上可以同时运行数千个 Docker 容器。
|
2014-09-25 09:23:05 +00:00
|
|
|
|
|
2014-10-21 05:59:03 +00:00
|
|
|
|
容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽量小。传统虚拟机方式运行 10 个不同的应用就要起 10 个虚拟机,而Docker 只需要启动 10 个隔离的应用即可。
|
2014-09-25 09:23:05 +00:00
|
|
|
|
|
2014-10-14 05:25:01 +00:00
|
|
|
|
具体说来,Docker 在如下几个方面具有较大的优势。
|
2014-09-25 09:23:05 +00:00
|
|
|
|
|
|
|
|
|
### 更快速的交付和部署
|
|
|
|
|
对开发和运维(devop)人员来说,最希望的就是一次创建或配置,可以在任意地方正常运行。
|
|
|
|
|
|
|
|
|
|
开发者可以使用一个标准的镜像来构建一套开发容器,开发完成之后,运维人员可以直接使用这个容器来部署代码。
|
2014-10-14 05:25:01 +00:00
|
|
|
|
Docker 可以快速创建容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其他成员更容易理解应用程序是如何创建和工作的。
|
|
|
|
|
Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。
|
2014-09-25 09:23:05 +00:00
|
|
|
|
|
|
|
|
|
### 更高效的虚拟化
|
2014-10-14 05:25:01 +00:00
|
|
|
|
Docker 容器的运行不需要额外的 hypervisor 支持,它是内核级的虚拟化,因此可以实现更高的性能和效率。
|
2014-09-25 09:23:05 +00:00
|
|
|
|
|
|
|
|
|
### 更轻松的迁移和扩展
|
|
|
|
|
|
2014-10-14 05:25:01 +00:00
|
|
|
|
Docker 容器几乎可以在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、个人电脑、服务器等。
|
2014-09-25 09:23:05 +00:00
|
|
|
|
这种兼容性可以让用户把一个应用程序从一个平台直接迁移到另外一个。
|
|
|
|
|
|
|
|
|
|
### 更简单的管理
|
2014-10-14 05:25:01 +00:00
|
|
|
|
使用 Docker,只需要小小的修改,就可以替代以往大量的更新工作。所有的修改都以增量的方式被分发和更新,从而实现自动化并且高效的管理。
|
2014-10-03 03:34:57 +00:00
|
|
|
|
|
|
|
|
|
### 对比传统虚拟机总结
|
|
|
|
|
| 特性 | 容器 | 虚拟机 |
|
|
|
|
|
| -- | -- | -- |
|
|
|
|
|
| 启动 | 秒级 | 分钟级 |
|
2014-10-14 05:25:01 +00:00
|
|
|
|
| 硬盘使用 | 一般为 MB | 一般为 GB |
|
2014-10-03 03:34:57 +00:00
|
|
|
|
| 性能 | 接近原生 | 弱于 |
|
|
|
|
|
| 系统支持量 | 单机支持上千个容器 | 一般几十个 |
|