Docker 是一个开源的应用容器引擎
,让开发者可以打包他们的应用
及依赖包
到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全 沙箱机制
,相互之间不会有任何接口(类似 ios app )。几乎没有任何性能开销,可以很容易地在机器和数据中心运行。最重要的是,他们不依赖于任何语言、框架或包括系统。
Docker 自开源后受到广泛的关注和讨论,以至于 dotCloud 公司后来都改名为 Docker Inc。Redhat 已经在其 RHEL 6.5 中集中支持 Docker,也在其 PaaS 产品中广泛应用。
Docker 项目的目标是实现轻量级的操作系统虚拟化解决方案。Docker 的基础是 Linux 容器(LXC
)等技术。
在 LXC 的基础上 Docker 进一步封装,让用户不需要去关心容器的管理,使得操作更加简便,用户操作 Docker 的容器就像一个快速轻量级的虚拟机一样简单。
下面对比 Docker 和传统虚拟化(KVM、XEN 等)方式的不同之处,容器
是在操作系统层面上实现的虚拟化,直接复用本地主机的操作系统;而 传统方式
则是在硬件基础上,虚拟出自己的系统,再在系统上部署相关的 APP 应用。
下图为传统虚拟化方案与 Docker 虚拟化方案对比: