什么是Vagrant

作者: AnnaJIAN | 来源:发表于2018-11-20 17:25 被阅读11次

    什么是Vagrant ?

    Vagrant 是一个对虚拟环境管理的工具,必须借助virtualbox/vm 才能使用。vagrant 英译流浪汉,可以方便的把某个虚拟开发环境搬运到另外一台机器中。

    如何使用Vagrant?

    假设已经用virtualbox建了一个开发环境。比如LAMP。现在想要在另外一台机器上重新建立一个一模一样的开发环境。

    初始化vagrant

    vagrant init
    

    生成Vagrantfile,Vagrantfile是一个配置文件,可以配置登录虚拟机方式password/ssh,虚拟机ip,将要执行的容器文件box等信息。

    把当前实例化了的虚拟环境导出成box-name.box, 这个box可能有几十G,这是已经压缩过的容器盒子,手动压缩也差不多大小。
    导出之后Vagrantfile将会有配置config.vm.box = "box-name"

    vagrant package --output box-name.box
    

    开发人员拷贝box及Vagrantfile到本地,本地需要已经安装vm,在Vagrantfile所在目录下运行vagrant up即可在本地生成刚才的虚拟机环境。需要等待几分钟。

    vagrant up
    

    登录虚拟机,ssh方式

    vagrant ssh
    

    重启虚拟机

    vagrant reload
    

    关闭虚拟机,并退出

    vagrant halt
    

    销毁虚拟机实例,实例化的虚拟环境占内存很大,经常不用可以销毁。

    vagrant destory
    

    如果本地有多个box,修改Vagrantfile中绑定的box,vagrant up 可以随时进入另外一个虚拟机环境,比如LNMP

    vagrant box add box_name path-to-box
    

    仓库

    公有的仓库中直接拉取box,然后启动环境。比如把ubuntu14.04拉取到本地。
    修改Vagrantfile

    Vagrant.configure("2") do |config|
      config.vm.box = "ubuntu/trusty64"
    end
    

    然后启动

    vagrant up
    

    Vagrant 和 Docker 有什么区别 ?

    参考什么是Docker?
    简单来说,Docker比Vagrant强大很多,docker包含vagrant的功能,docker也可以做容器实例导出的工作,但是docker可以导出镜像文件到本地,通过镜像文件生成虚拟容器实例。镜像文件可能也就几十兆,Docker更加轻量级,Docker不依赖vm。把线上环境安装在vm里面是不现实的。docker参数多,更加灵活,在线上部署服务器集群也是很方便的。
    比如docker 启动一个ubuntu18的镜像。

    docker run ubuntu:18.04
    

    vagrant简单易上手。命令简单,也非常适用于小团队内部开发。

    相关文章

      网友评论

        本文标题:什么是Vagrant

        本文链接:https://www.haomeiwen.com/subject/cthxqqtx.html