通过virtualbox自带的VBoxManaage.exe工具。使用vboxmanage list vms命令,查看需导出的虚拟机实例。然后用vagrant package命令进行打包导出。
导出
若提示vboxmanage命令不存在,请查看VBoxManage.exe文件所在路径。并添加到环境变量。
1、关闭vagrant
2、进入VirtualBox安装目录,执行命令:
vboxmanage list vms
E:\Program Files\Oracle\VirtualBox>vboxmanage list vms
"homestead-7" {536a3319-9656-4553-a017-223e73236b61}
"centos7_default_1554699879574_40893" {5ea69a69-fb4c-4216-a41a-18095f1d9aa6}
3.导出,并备份私钥登录文件。private_key。路径在.vagrant\machines\default\virtualbox
若--base和--output参数未指定,则默认导出当前环境虚拟机,到当前目录的package.box文件。
vagrant package --base centos7_default_1554699879574_40893 --output [定义的别名]
vagrant package 是导出box的打包命令
--base 代表本地
centos7_default_1554699879574_40893 要导出的box的名称
–output 导出到指定位置
[定义的别名] 如:./CentOS7.box 表示导出后的box名为CentOS7.box,并保存在当前目录下
导入
1 导入box并init初始化,生成vagrantfile
vagrant box add [你自定义的别名] [包名]
例:
1.1 导入box虚拟机文件
vagrant box add -name mycentos-7 D:\Vagrant\mybox\CentOS-7-x86_64-Vagrant-1902_01.VirtualBox.box
1.2 init初始化,生成Vagrantfile文件
vagrant init
2 编辑Vagrantfile
2.1 设置使用的box名:
config.vm.box = "base"
把base更改成导入的box名
2.2 设置登录账号密码或密钥
config.ssh.username = "vagrant"
config.ssh.password = "vagrant"
config.ssh.insert_key = false
或直接设置私钥登录,把之前备份的私钥登录文件放进默认目录(在当前目录的.vagrant文件夹下,文件夹最前面有个点)。
.vagrant\machines\default\virtualbox
config.ssh.insert_key = true
3设置IP
config.vm.network "private_network", ip: "192.168.2.166"
4设置文件映射.左边文件夹是你的windows工作目录名,右边是linux对应的目录名。
config.vm.synced_folder "../workspace", "/media/raid10/htdocs"
5设置内存.由于我配置的是多版本php,需要空间大一点,就给2G.如果对空间没要求,可以跳过。
config.vm.provider "virtualbox" do |vb|
vb.memory = "2048"
end
启动vagrant
vagrant up
注意:vagrant up会直接创建虚拟机。
如果创建失败或报错。修改Vagrantfile后,重新执行vagrant up前。请切记不要直接删除目录中的.vagrant文件夹。这样会生成2个虚拟机!
修改Vagrantfile后,不要动.vagrant目录。直接执行vagrant reload重载虚拟机即可。
如不小心手动删除了.vagrant目录,因为.vagrant\machines\default\virtualbox路径下有虚拟机运行的配置文件。可能导致virtual box和vagrant都无法正常删除新创建的虚拟机。
删除.vagrant目录的文件,请直接使用
vagrant destroy
玩转Vagrant之工作环境的迁移 https://blog.csdn.net/glatchen/article/details/83187484
如何导出vagrant box https://blog.csdn.net/song634/article/details/82805557
vagrant package 打包命令的用法 https://www.viphper.com/1411.html