什么是Docker?

Docker是基于Go语言实现的云开源项目,诞生于2013年初。

Docker的主要目标是“Build,ship and Run Any App,Anywhere”,即通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”。这里的应用组件,既可以是一个web应用,也可以是一套数据库服务,甚至可以是一个操作系统或是编译器。

Docker引擎的基础是Linux容器(Linux Containers,LXC)技术。源代码托管在GIthub 上, 基于go语言并遵从Apache2.0协议开源。

从Linux容器到Docker

在LXC的基础上,Docker进一步优化了容器的使用体验。Docker提供了各种容器管理工具(如分发、版本、移植等)让用户无需关注底层的操作,可以简单明了地管理和使用容器。

Docker与虚拟机比较

特性

容器虚拟机
启动速度秒级分钟级
硬盘使用一般为MB一般为GB
性能接近原生弱于
系统支持量单机支持上千个容器一般几十个
隔离性安全隔离完全隔离

虚拟化与Docker

传统方式是在硬件层面实现虚拟化,需要有额外的虚拟机管理应用和虚拟机操作系统层。


a)传统的虚拟化方式

wKioL1TJyLrDWpQaAAETEwWXCfg461.jpg

b)Docker虚拟化方式

wKiom1TJx-Pg1GiZAAFGeeCIqTU933.jpg

Docker容器是在操作系统层面上实现虚拟化,直接复用在本地主机的操作系统,因此更加轻量级。