跳过正文
  1. Posts/

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

·665 字·2 分钟· ·
沈显鹏
作者
沈显鹏
目录

关于 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领域知识分享。

相关文章

什么是 Vagrant? Vagrant 和 VirtualBox 的区别
·1346 字·3 分钟
本文介绍了 Vagrant 的概念、发展历史以及如何使用 Vagrant 创建和管理虚拟机,强调了 Vagrant 相比传统虚拟机的优势。
你一定要了解这 17 条 Docker 最佳实践!
·8494 字·17 分钟
本文分享了在编写 Dockerfiles 和使用 Docker 时应遵循的一些最佳实践,包括多阶段构建、镜像优化、安全性等方面的建议。
Docker 常用命令
·235 字·1 分钟
一个 Docker 常用命令小纸条,记录一些常用的 Docker 命令和操作,方便日常使用和参考。
Docker 版本概述
·278 字·1 分钟
概述 Docker 的不同版本,包括社区版、企业版和企业级解决方案,适用于不同规模和需求的用户。
定制一个 Docker 版 Jenkins 镜像
·591 字·2 分钟
如何定制一个 Docker 版 Jenkins 镜像,并将其备份到 Artifactory,便于在需要时快速恢复 Jenkins 环境。
什么是 Go ?Go 的优势和现状。初学者应该学习 Python 还是 Go?
·1811 字·4 分钟
本文介绍了 Go 语言的基本概念、优势、排名以及初学者应该如何选择学习 Python 还是 Go,提供了实用的学习建议和资源。