使用vagrant导入导出virtualbox虚拟机

参考:https://blog.csdn.net/glatchen/article/details/83187484

环境:virtualbox + vagrant

需要先安装 virtualbox 和 vagrant 软件,并注册到环境变量。

由此可见,一个完整的项目需要一个 virtualbox虚拟机 和 一个vagrant项目(管理机操作虚拟机),
比如 laravel项目的环境:laravel/homestead Box + Homestead

Homestead 项目可以从git下载
laravel/homestead Box 下载就是比较慢的

具体操作详见:<<windows+Laravel 5.5+Homestead>>

每次下载就会很耗时间,于是就需要备份box(也叫导入导出)

vagrant的box默认存放在 C:\Users\Administrator\.vagrant.d\boxes

一、导入导出:

1、列出所有的虚拟机
	两种方式:
	方法1:
		vagrant box list

		C:\Program Files\Oracle\VirtualBox>vagrant box list
		
		centos7.2         (virtualbox, 0)
		laravel/homestead (virtualbox, 6.4.0)

	方法2:
		进入virtualbox软件的安装目录 C:\Program Files\Oracle\VirtualBox,使用命令 vboxmanage list vms

		C:\Program Files\Oracle\VirtualBox>vboxmanage list vms

		"default" {81434ecc-a423-44b7-93b1-aff8ede9792c}
		"centos72-1_default_1533621465445_39239" {b3af62dc-de05-4455-a5d5-9da3c0ebbed1}
		"homestead-7" {8511e1c7-d767-4fd0-861b-7a7e3822d35e}

	为什么两种输出不一样呢?因为,第一种显示的是在vagrant下管理的虚拟机;第二种显示的 virtualbox 下全部的虚拟机,且名称还不一样,当时两者是有联系的;但是最终还是由vagrant映射到virtualbox的虚拟机上。

	在此使用 vboxmanage list vms

2、导出
	1、关闭虚拟机
	2、新建vagrant项目目录,比如:C:\Users\Administrator\HomesteadNew\
	3、进入目录 cd C:\Users\Administrator\HomesteadNew
	4、vagrant package --base homestead-7 --output homestead-new.box
	至此,打包完毕。你的工作环境至此完全导出。
	导出的包保存在当前目录下,注意查看。

3、导入
	1、命令:vagrant box add homestead-new homestead-new.box
		// vagrant box add 你自定义的别名 包名

		于是 C:\Users\Administrator\.vagrant.d\boxes 下多出一个目录 homestead-new
	
	2、命令:vagrant init homestead-new.box
		注意:一定要指定初始化哪个box
	
	3、发现你的文件夹中自动生成了一个文件,Vagrantfile。
		由于你是直接引入自己打的包,而不是vagrant官方提供的包,所以有可能存在一些问题。我们通过编辑Vagrantfile来解决。
		注意:config.vm.box = "homestead-new.box"
		在Vagrantfile中的“config.vm.box”这一行下,加上这三句
			config.ssh.username = "vagrant"
			config.ssh.password = "vagrant"
			config.ssh.insert_key = false
		由于vagrant默认使用private_key登录,此时你有很大的可能是没有private_key的,我们直接改成用户名+密码登录,反正工作环境是你自己的
	
	4、设置ip,
		config.vm.network "private_network", ip: "192.168.10.11"
	
	5、设置文件映射
		config.vm.synced_folder "D:/phpStudy/PHPTutorial/WWW/dc_fisher_dock_php/trunk/dc_laravel", "/mydata/data/dc_laravel"
		左边文件夹是你的windows工作目录名,右边是linux对应的目录名。如果你不加上这一句。会映射到linux根目录下的vagrant文件夹
	
	6、设置内存
		config.vm.provider "virtualbox" do |vb|
		     vb.memory = "2048"
		end
		设置2G空间,由于我配置的是多版本php并行的虚拟机环境,需要空间大一点,就给2G,如果你对空间没要求,可以跳过这一步。
	
	7、启动vagrant
		vagrant up
		报错:
		The version of powershell currently installed on this host is less than
		the required minimum version. Please upgrade the installed version of
		powershell to the minimum required version and run the command again.

		  Installed version: 2

		  Minimum required version: 3

		解决:
		https://social.technet.microsoft.com/wiki/contents/articles/21016.how-to-install-windows-powershell-4-0.aspx
		下载对应的  更新下  更新好后会提示重启  重启下电脑就可以了 

		测试
			xshell
			127.0.0.1:2222
			vagrant / vagrant
			登录
			ip addr
				192.168.10.11
				如果ip不是自己设置的ip,执行vagrant reload,虚拟机会强制重启,再次查看ip addr

		销毁虚拟机
			vagrant destroy  停止并销毁当前虚拟机


		成功
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐