zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    SpringBoot整合Flyway(数据库版本迁移工具)
    Java并发编程实战 05等待-通知机制和活跃性问题
    Java并发编程实战 04死锁了怎么办?
    Java并发编程实战 03互斥锁 解决原子性问题
    Java并发编程实战 02Java如何解决可见性和有序性问题
    Flutter学习笔记(40)--Timer实现短信验证码获取60s倒计时
    Flutter学习笔记(39)--BottomNavigationBar底部item超过3个只显示icon,不显示title
    Flutter学习笔记(38)--自定义控件之组合控件
    Flutter学习笔记(36)--常用内置动画
    Flutter学习笔记(37)--动画曲线Curves 效果
  • 原文地址:https://www.cnblogs.com/cjjjj/p/10527488.html
Copyright © 2011-2022 走看看