Vagrant与Docker对比
Vagrant和Docker都是虚拟化技术。
Vagrant是基于Virtualbox的虚拟机来构建你的开发环境。
Docker则是基于LXC(LXC)轻量级容器虚拟技术。
虚拟机之于容器虚拟技术相当于进程和线程。虚拟机内可以包含很多容器,正如一个进程中可以包含很多线程。虚拟机重,容器虚拟技术轻。前者的Image一般以GB计算,Docker则以100MB为单位计算。
Vagrant是开发环境的部署工具。而docker是运行环境部署工具。
vagrant就是装了一个Linux的VirtualBox虚拟机,配以一系列套件,辅助完成诸如安装初始化、文件同步、ssh、部署环境升级、功能插件安装等等一些列问题的开发环境部署套件。
Docker就是在内核容器技术(Cgroup和Namespace)的基础上,提供了一个更高层的控制工具,该工具包含一下特性:
- 跨主机部署
- 以应用为中心
- 自动构建
- 版本管理
- 组建重用
- 共享
- 工具生态链
vagrant抽象度比docker更高,直接用vagrant同docker相比较是不恰当的。而把vagrant同 Boot2Docker(一款运行docker最小的内核) 进行比较更恰当。
vagrant提供了使用Docker作为provider(其他的provider有virtualBox、VMware\\hyper-V等)的开箱即用支持。这允许你的开发环境可以是Docker容器,而不仅仅是虚拟机。