vagrant(四):共享目录

共享目录

共享目录可以设置Vagrant在宿主机(host)和虚拟机(guest)之间同步文件,这样做的好处是可以在宿主机上开发,在虚拟机上运行。
vagrant默认的共享目录在宿主机上是和Vagrantfile文件同路径下的/vagrant文件夹,在虚拟机上是/home/vagrant目录。如果要共享其他的文件夹,还是在Vagrantfile中进行配置,例如:

Vagrant.configure("2") do |config|
  # other config here

  config.vm.synced_folder "src/", "/srv/website"
end

config.vm.synced_folder方法用来配置共享文件夹, 第一个参数是宿主机的路径,如果是相对路径,那么默认是在项目根目录下,第二个参数是虚拟机上的路径,这个路径参数必须是绝对路径。在虚拟机中将会根据这里的设置,在系统中创建共享文件夹。
在用 vagrant up 启动虚拟机的时候,显示的提示信息里,可以找到电脑与虚拟机对应的同步目录。

==> default: Mounting shared folders...
    default: /vagrant => /Users/dl/vagrant/xnat-project

上面显示,/vagrant 是虚拟机上的目录,对应的同步目录是电脑上的 /Users/dl/也就是你把要共享的文件放到项目的目录里面,在虚拟机上的 /vagrant 这里可以看到,你可以直接在虚拟机上修改在这个目录下面的文件,这样在你电脑上,也可以看到修改以后的结果,反过来也是一样的。

在用 vagrant up 启动虚拟机的时候,显示的提示信息里,可以找到电脑与虚拟机对应的同步目录。

==> default: Mounting shared folders...
    default: /vagrant => /Users/dl/vagrant/xnat

上面显示,/vagrant 是虚拟机上的目录,对应的同步目录是host上的 /Users/dl/vagrant/xnat这个目录。
默认情况下,Vagrant将共享文件夹创建在ssh用户所在的用户/组(vagrant用户)中并和其他root路径下的父文件夹一同加载。有时最好将目录挂载到不同的用户和组。比如挂载到root,就可以这样设置:

config.vm.synced_folder "src/", "/srv/website",owner: "root", group: "root"

注意:mount_options 中定义的所有者和组 ID 将优先于其他所有者和组选项。

例如,给出以下配置:

挂载的同步目录将由 ID 为 1234 的用户和 ID 为 1234 的组拥有。owner 和 group 选项将被忽略。

synced_folder 参数

synced_folder方法可以配置的参数如下:

  • create (boolean) -如果设置为true,那么当宿主机上的文件夹不存在则创建,默认为false。
  • disabled (boolean) - 如果设置为true, 共享目录失效,这个参数可以用来修改共享目录,将之前定义的目录取消。
  • group (string) - SSH用户组的共享目录设置。
  • mount_options (array) - 其他一些可以传递给mount命令来加载的文件夹。
  • owner (string) - 指定共享目录属于哪个用户。默认是SSH用户。
  • type (string) - 指定共享目录的文件格式类型。一般情况下vagrant会自动设置最佳的文件格式,也可以通过该功能自定义。
  • id (string) - 共享目录在虚拟机上的加载名称。

共享目录类型

vagrant的共享目录类型有:

  • NFS (适用于Mac OS宿主机):
    config.vm.synced_folder "/hostPath", "/guestPath", type: "nfs"
  • RSync :
    config.vm.synced_folder "/hostPath", "/guestPath", type: "rsync"
  • SMB (适用于Windows宿主机):
    config.vm.synced_folder "/hostPath", "/guestPath", type: "smb"
  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lxy_Alex

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值