Vagrant + VirtualBox(四) :导出自己的box

当我们用 Vagrant + VirtualBox 搭建好一个虚拟机,虚拟机肯定也安装、配置了很多东西,如果这时换设备了,或者开发的同事需要跟我的环境一样,或者新来的同事要搭建环境,不论哪一种情况都会耗费大量的时间。如果有一种办法把我本机的环境 “拷贝” 给需要的人,那岂不是不需要重新搭建,节省了大量时间。

下面介绍如何把虚拟机打包成一个box,让有需要的人都能使用一模一样的系统环境。导出上一篇介绍的PHP环境为例。

打包box

vagrant package 打包box详解

vagrant package -h

输入上面的命令,可以看到这个命令的各选项的意思:

  • –base NAME 要打包为基盒的virtualbox中虚拟机的基名称(仅限virtualbox)
  • –output NAME 输出名称要输出的文件的名称
  • –include FILE,FILE… 包括文件,文件…以逗号分隔的附加文件与框一起打包
  • –vagrantfile FILE 要用方框打包的vagrantfile文件vagrantfil
  • -h, --help 打印此帮助

最后写好的命令大概长这样

 vagrant package --base centos-lnmp_default_1562568215794_41270 --output lnmp.box

注意问题:

  1. centos-lnmp_default_1562568215794_41270:这个是虚拟机名称,不是vagrant box list出来的,vagrant box list出来的box源文件,跟现在要导出的一个样,并不是虚拟机名称;
  2. base、output前面是两个减号 --,并且减号中间无空格;
  3. 生成的box名称后面要加上.box后缀。

先说下我遇到的问题
获取虚拟机名称,网上的说法是使用命令

vboxmanage list vms

但是我一直提示这个

E:\vagrant\centos-lnmp>vboxmanage list vms
'vboxmanage' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

我想应该是没把VirtualBox的安装目录添加到环境变量path,然后我又到VirtualBox的安装目录执行还是这个鸟样,浪费我时间,不知哪里出问题了,找了半天也没找到。可能是安装时哪里搞错了,后来我找到另一个办法获取虚拟机名称。

点开这个工具
在这里插入图片描述
在这里插入图片描述
想导出哪个虚拟机,就右键点击,点开设置 -》储存 -》控制器 -》box-disk1.vmdk
在这里插入图片描述
这时不通过命令也能拿到虚拟机名称了。

导出box

最后的导出命令是这样的

vagrant package --base centos-lnmp_default_1562568215794_41270 --output lnmp.box

导出虚拟机名称为:centos-lnmp_default_1562568215794_41270
导出的box命名为:lnmp.box,这个指定一个名字比较好认,否则会自动生成一个默认的名称

此时不写路径则导出到当前目录

E:\>cd vagrant
E:\vagrant>cd centos-lnmp
E:\vagrant\centos-lnmp>vagrant package --base centos-lnmp_default_1562568215794_41270 --output lnmp.box
==> centos-lnmp_default_1562568215794_41270: Exporting VM...
==> centos-lnmp_default_1562568215794_41270: Compressing package to: E:/vagrant/centos-lnmp/lnmp.box

最后在当前目录centos-lnmp下生成了一个box文件
在这里插入图片描述
我这个包大概1.2G,导出时间大概3分钟左右,据说有一种轻量级的Linux发行版镜像只有一两百兆,用来搭环境最合适不过,这样制作的box也会非常小,感兴趣的可以自己去搞一搞。

这样就可以把这个包发给其他人,然后 vagrant add 添加这个包,初始化、启动,就可以得到一模一样的环境了。

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值