VitrualBox、vagrant、homestead的关系

VitrualBox 是一款非常强大的免费虚拟机软件,使用者可以在 VitrualBox 上安装并运行 Linux、Windows、Mac OS X 等操作系统,类似的软件还有 VMware
Vagrant 是一个用于创建和部署虚拟化开发环境的工具,其依赖于 VirtualBox 虚拟机,致力于帮助开发者快速构建一个环境统一的虚拟系统。

Vagrant 可以将一整套虚拟环境封装在一个box 内,这样只要所有人都使用这个 box,大家的开发环境就实现统一了!而 Homestead 就是这样一个 Laravel 官方预装的适合 Laravel 开发的 Vagrant box 。
--------------------- 
作者:蜗牛蜗牛慢慢爬 
来源:CSDN 
原文:https://blog.csdn.net/u014665013/article/details/77775911 
版权声明:本文为博主原创文章,转载请附上博文链接!

其实可以这样理解,你有了虚拟机(VirtualBox),有了集成环境(homestead环境也就是vagrant box),那么你总需要把集成环境放到虚拟机上是吧。那么谁来做这个事情呢?必须要有人来做才行啊,不然的话,虚拟机是不会自己装环境的。vagrant 就是做这个事情的。

那么问题又来了,可能会有人问:

既然vagrant是用来装homestead的,那你为什么后来还要再装homestead呢?

这个问题其实我并不知道答案,但是根据我的理解,应该是这样的。

我们需要对本地文件和虚拟机上的文件进行同步,同时还要进行站点的搭建,VirtualBox、vagrant都不能做这个事情,这个事情就只能交由另外一个人来做了:homestead。

这里大家可能会有疑问:

你刚才说homestead是vagrant box,现在又说homestead是来对本地文件和虚拟机上的文件进行同步,同时还要进行站点的搭建的。这根本就是两个东西嘛,它到底是什么玩意。

其实可以这样理解,第一个homestead(vagrant box)是集成了laravel运行环境的一个box,这里面有php、mysql等等的软件,第二个homestead是控制本地文件和虚拟机上的文件进行同步,同时还要进行站点的搭建的

从根本上来说,他们两个并不是同一个东西。

但想到这里我又产生了一个疑问:

既然vagrant是虚拟机和环境之间的桥梁,那如果我有10个虚拟机,1个环境,这个时候如果我执行

vagrant box add laravel/homestead

 那么vagrant会把homestead安装到哪个虚拟机上呢?

我想这个应该不是个问题:

无论它把homestead安装到哪个虚拟机上,无论安装的是哪个环境,vagrant总是知道的,当我们需要使用虚拟机的时候,他会为我们开启相应的虚拟机,当然你如果不想做一个傻瓜,我猜设计者也提供了让你自己选择的操作了把。

后来我又想,大部分的时候我运行vagrant都是在homestead的目录下,那如果有一天homestead不流行了,大家都不用他了,那vagrant是不是也就凉了呢?

其实并不是的,两者并没有必要的联系。

vagrant 管理的是虚拟机,

那又有人会说,我为啥要vagrant管理虚拟机,virtualbox自己就有图形化界面,虚拟机的启动,关闭,销毁都可以由virtualbox来做,干嘛要vagrant来管理?

后来我想想,其实这个质疑并不是没有道理的。

但我们可以这样理解。当然virtualbox可以启动,关闭,销毁虚拟机,vagrant也可以不做这样的事情。但是谁来做把环境箱子挪到虚拟机这一步的操作呢?

当然还是vagrant !!!

累了,具体的原因在这个url上,明天接着学习吧。https://www.jianshu.com/p/050b0a4468c4、https://www.cnblogs.com/hafiz/p/9175484.html

posted @ 2019-03-13 23:28  泥土里的绽放  阅读(1060)  评论(0编辑  收藏  举报