熟练使用vagrant(12):vagrant目录同步synced_folder
- 目录:熟练使用vagrant系列文章
- vagrant视频教程:熟练使用vagrant管理虚拟机
熟练使用vagrant(12):vagrant目录同步synced_folder
vagrant提供了目录同步的功能,它可以将宿主机上的目录自动同步到虚拟机中。
vagrant加上它的目录同步功能,对于搭建相同的开发环境、测试环境非常有帮助:所有人都可以用同一个Vagrantfile创建出相同环境的虚拟机并运行相同的程序代码。
目录同步的方式非常简单:
1 | # 将宿主机项目目录挂载到虚拟机的/vagrant目录 |
对于不同provider和不同宿主机平台、虚拟机平台,vagrant支持的同步方式不一样:
- 对于virtualbox,默认使用virtualbox方式,即virtualbox自带的目录同步功能(shared folder),这种同步方式性能很差,但通用性更好
- 如果使用nfs同步方式,首先Windows宿主机类型不支持nfs方式,另外要求宿主机安装了nfs工具,虚拟机安装了nfsd,且如果provider是VirtualBox,还要求至少配置一个private_network
- 如果使用rsync同步方式,它默认虚拟机启动时才同步一次,可以执行
vagrant rsync
临时进行一次同步,或者执行vagrant rsync-auto
使得目录出现变化时自动同步。要求宿主机中已经存在rsync命令 - 如果使用smb同步方式,smb同步方式的性能相比Virtualbox内置的virtualbox shared folder同步方式要更高。smb同步方式要求宿主机只能是Windows或MacOS,且如果是Windows,则要求安装PowerShell 3.0+
文件同步功能要求虚拟机安装VBoxGuestAdditions,并且它的版本要和VirtualBox版本匹配,如果因为缺失VBoxGuestAdditions或版本错误导致文件同步失败,可从https://download.virtualbox.org/virtualbox/查找和VirtualBox相同版本的手动安装。
可安装插件vagrant-vbguest
,它可以在每次安装虚拟机时(vagrant up)默认安装VBoxGuestAdditions。
1 | Vagrant.configure("2") do |config| |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 骏马金龙!
评论