跳过正文
  1. Posts/

Vagrant 和 Docker 的区别,该如何选?

·665 字·2 分钟· ·
沈显鹏
作者
沈显鹏
DevOps & Build 工程师 | Python 爱好者 | 开源贡献者
目录

关于 Vagrant 的介绍,可以参看前一篇文章:什么是 Vagrant? Vagrant 和 VirtualBox 的区别

什么是 Vagrant
#

关于 Vagrant 的介绍,可以参看前一篇文章:什么是 Vagrant? Vagrant 和 VirtualBox 的区别

Vagrant 和 Docker 区别
#

关于 Vagrant 被问到最多的问题:Vagrant 和 Docker 之间有什么区别。

如果不分场景的直接比对 Vagrant 和 Docker 是不恰当的。在一些简单场景中,它们的作用是重复的,但在更多场景中,它们是无法相互替代的。

那么什么情况下应该用 Vagrant,什么情况下用 Docker 呢?

所以如果你仅仅是想管理虚拟机,那么你应该使用 Vagrant;如果你想快速开发和部署应用,那么应该使用 Docker。

下面具体来说说为什么。

Vagrant 是 VM 的管理工具,或是说编排工具;Docker 是用来构建、运行、管理容器的工具。那么这个问题其实落在了虚拟机(VM)和 容器(Container)的区别。

引用网络上一组照片来感受一下物理机(Host),虚拟机(VM)和 容器(Container)之间的区别。

物理机(Host)

物理机

虚拟机(VM)

虚拟机

容器(Container)

Docker

从图上我们更容易理解虚拟机(VM)和容器(Container)的这些不同:

特性虚拟机容器
隔离级别操作系统级进程级别
隔离策略HypervisorCGROUPS
系统资源5 - 15%0 - 5%
启动时间分钟级秒级
镜像存储GBMB

总结:Vagrant 和 Docker 的使用场景区别

Vagrant 设计是用来管理虚拟机的,Docker 设计是用来管理应用环境。

Vagrant 更适合用来做开发、测试,解决环境一致性的问题;Docker 更适合做快速开发和部署,CI/CD。

最后,Vagrant 和 Docker 都有大量社区贡献的 “Box”“Image” 可供选择。


欢迎关注微信公众号「DevOps攻城狮」- 专注于DevOps领域知识分享。

相关文章

Docker 版本概述

·278 字·1 分钟
概述 Docker 的不同版本,包括社区版、企业版和企业级解决方案,适用于不同规模和需求的用户。