KVM

使用的是虚拟化技术,依赖物理CPU和内存

需要OS支持KVM虚拟化

KVM更接近传统的虚拟机,利用软件模拟出一整套硬件,再安装一个完整的镜像,相当于重新安装了一台机器,占用更多的资源。

安装后占用比较多的空间,重新安装或重新配置非常麻烦

KVM虚拟机启动时需要走完完整的开机流程(分钟级)

LXC

早期的docker引擎

Docker

容器的核心思想就是:分装、独立

使用容器化技术,构建在OS上,采用libcontainer引擎

docker更接近一个进程,非常的轻量,占用比较少的资源,可以随时销毁并马上重建

占用空间很小,重新安装或重新配置比较简单

docker更倾向于一个应用一个容器,如果需要有数据沟通,则将多个容器使用命令连接,但相对来说也是独立的,重新安装非常简单

比较

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

层级

KVM和Docker - 图1KVM和Docker - 图2