什么是Docker?为何要使用Docker【转】

Docker 是一个开源项目,诞生于 2013 年初,最初是 dotCloud 公司内部的一个业余项目。它基于 Google 公司推出的 Go 语言实现。项目后来加入了 Linux 基金会,听从了 Apache 2.0 协议,项目代码在GitHub 上进行维护。服务器

Docker 自开源后受到普遍的关注和讨论,以致于 dotCloud 公司后来都更名为 Docker Inc。Redhat 已经在其 RHEL6.5 中集中支持 Docker;Google 也在其 PaaS 产品中普遍应用。运维

Docker 项目的目标是实现轻量级的操做系统虚拟化解决方案。Docker 的基础是 Linux 容器(LXC)等技术。性能

在 LXC 的基础上 Docker 进行了进一步的封装,让用户不须要去关心容器的管理,使得操做更为简便。用户操做 Docker 的容器就像操做一个快速轻量级的虚拟机同样简单。测试

下面的图片比较了 Docker 和传统虚拟化方式的不一样之处,可见容器是在操做系统层面上实现虚拟化,直接复用本地主机的操做系统,而传统方式则是在硬件层面实现。spa

为何要使用 Docker?
做为一种新兴的虚拟化方式,Docker 跟传统的虚拟化方式相比具备众多的优点。操作系统

首先,Docker 容器的启动能够在秒级实现,这相比传统的虚拟机方式要快得多。其次,Docker 对系统资源的利用率很高,一台主机上能够同时运行数千个 Docker 容器。blog

容器除了运行其中应用外,基本不消耗额外的系统资源,使得应用的性能很高,同时系统的开销尽可能小。传统虚拟机方式运行 10 个不一样的应用就要起 10 个虚拟机,而Docker 只须要启动 10 个隔离的应用便可。图片

具体说来,Docker 在以下几个方面具备较大的优点。ci

更快速的交付和部署
对开发和运维(devop)人员来讲,最但愿的就是一次建立或配置,能够在任意地方正常运行。资源

开发者可使用一个标准的镜像来构建一套开发容器,开发完成以后,运维人员能够直接使用这个容器来部署代码。Docker 能够快速建立容器,快速迭代应用程序,并让整个过程全程可见,使团队中的其余成员更容易理解应用程序是如何建立和工做的。Docker 容器很轻很快!容器的启动时间是秒级的,大量地节约开发、测试、部署的时间。

更高效的虚拟化
Docker 容器的运行不须要额外的 hypervisor 支持,它是内核级的虚拟化,所以能够实现更高的性能和效率。

更轻松的迁移和扩展
Docker 容器几乎能够在任意的平台上运行,包括物理机、虚拟机、公有云、私有云、我的电脑、服务器等。这种兼容性可让用户把一个应用程序从一个平台直接迁移到另一个。

更简单的管理
使用 Docker,只须要小小的修改,就能够替代以往大量的更新工做。全部的修改都以增量的方式被分发和更新,从而实现自动化而且高效的管理。

对比传统虚拟机总结
                           
                            

特性 容器  虚拟机
启动 秒级 分钟级
硬盘使用 通常为 MB 通常为 GB
性能 接近原生 弱于
系统支持量 单机支持上千个容器 通常几十个
相关文章
相关标签/搜索