为了账号安全,请及时绑定邮箱和手机立即绑定

请问该如何理解VirtualBox,Vagrant,Docker这几种技术的关系?

请问该如何理解VirtualBox,Vagrant,Docker这几种技术的关系?

胡子哥哥 2019-09-13 11:10:51
如何理解VirtualBox,Vagrant,Docker这几种技术的关系
查看完整描述

4 回答

?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

virtualbox 就是传统的虚拟机方式,直接在程序层面,模拟一个硬件环境,模拟环境内的程序和模拟的硬件环境做交互,再由虚拟机软件把模拟硬件的调用转换为外部程序指令去和硬件再交互来工作。vagrant 等于就是一个辅助工具,让你更好的制作 virtualbox 虚拟机里面的系统以及方便的与其交互等等工作。
docker 等于是脱离了 virtualbox 的虚拟机模拟硬件再转换成指令继续和真实硬件交互操作的额外步骤。应用程序直接就能使用自己所处计算机的真实硬件,运行效率更高。通过 docker 软件的隔离封装机制来让程序有自己独立的空间。
关系层面虚拟机和这种封装没啥共通点,但是也都是把程序独立出来运行的办法。你可以认为虚拟机靠模拟的硬件进行隔离操作,docker 是靠模拟一套函数接口进行隔离操作。


查看完整回答
反对 回复 2019-09-17
?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

 vagrant 是一个非常好用的工具,可以用它来在单台物理机器编程管理多个虚拟机(vms)。其支持原生VirtualBox,并同时提供了对VMware Fusion、Amazon EC2虚拟机集群的插件支持。
  vagrant提供了极易使用、基于Ruby的内部DSL,允许用户使用它们的配置参数定义一个或多个虚拟机。另外,对于自动部署,vagrant支持多种机制:可以使用puppet,chef或者用于在vagrant配置文件中定义的所有虚拟机上自动安装软件程序和配置的shell脚本等。
  所以,使用vagrant可以在运行着多台vm的系统上定义复杂的虚拟框架,是不是很酷?
  vagrant的典型使用案例是以简单并且一致的方式构建工作或者开发环境。在Eligotech(原作者公司)公司里,开发人员正在开发一个产品,目标是让用户简单的使用Apache Hadoop、CDH(Cloudera的开源版本)。开发人员经常是为了测试需要在机器上安装hadoop环境。他们发现vagrant在这方面是一个非常便利的工具。





查看完整回答
反对 回复 2019-09-17
?
慕村9548890

TA贡献1884条经验 获得超4个赞

技术栈只是普通LAMP,我不建议引入docker,vagrant,生产环境部署或许有一点用,但也只是docker,vagrant基于virtualbox,帮不上多少忙,复用率高不到哪里去。技术栈复杂到一个新人架设开发环境非常麻烦的时候,vagrant才能发挥作用,为团队节省时间。开发机多数情况毕竟只需要架设一次。况且通常团队不能假设都很熟悉docker,vagrant,如果没有配套的工作时培训熟悉,恐怕使用这些技术只会反而增加整个上手难度,增加开发成本。LAMP开发环境假设非常简单,工具很成熟,90%的情况也就是apt-get install一下,并不麻烦。


查看完整回答
反对 回复 2019-09-17
  • 4 回答
  • 0 关注
  • 388 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信