【问题标题】:How to share a folder created inside vagrant?如何共享在 vagrant 中创建的文件夹?
【发布时间】:2013-10-07 18:22:43
【问题描述】:

我有一个 vagrant 虚拟机,并且使用 config.vm.share_folder 将主机 (Ubuntu) 中的一个文件夹(我的代码仓库)共享给 vagrant。我想对我在流浪机器(虚拟环境)中创建的文件夹做相反的事情,我想将它分享回主机。我该怎么做?

我尝试将以下内容添加到 vagrant 文件中:config.vm.share_folder "virtualenv", "/home/vagrant/devenv", "../virtualenv" 分别指向 vagrant 机器上的虚拟环境和主机上的空文件夹。当我流浪并查看主机上的文件夹时,我想查看 vagrant 机器内的虚拟环境的内容,但该文件夹保持为空。当我 ssh 进入 vagrant 机器并查看虚拟 env 文件夹时,它已变为空。停用此设置会恢复 vagrant 机器上文件夹的内容。

【问题讨论】:

    标签: ubuntu vagrant


    【解决方案1】:

    共享文件夹 VS 同步文件夹

    共享文件夹已重命名为从 v1 到 v2(文档)的同步文件夹,在主机和来宾之间仍然使用 vboxsf(如果有大量文件/目录,则会出现已知的性能问题)。

    注意:您需要了解它通过vboxsf 将主机目录挂载到来宾中,NOT 反过来。

    在您的用例中,您可以

    1. 使用同步文件夹在主机和来宾之间映射文件夹(假设它们都是空的),然后在来宾中复制(首选rsync)或将项目移动到映射的文件夹中。
    2. 将内容从客户机复制到主机(使用scprsync)文件夹 A,然后使用同步文件夹将主机上的文件夹 A 映射到来宾。

    例如

    # relative path to where Vagrantfile resides
    config.vm.synced_folder "virtualenv", "/home/vagrant/devenv"
    
    # absolute path
    config.vm.synced_folder "/path/to/virtualenv", "/home/vagrant/devenv"
    
    1. 将项目目录(Vagrantfile 所在的位置)中的 virtualenv 目录映射到来宾/home/vagrant/devenv

    2. 绝对路径

    更多信息可以帮助您了解同步文件夹的工作原理=>Vagrant shared and synced folders

    【讨论】:

      【解决方案2】:

      在共享文件夹和同步文件夹(请参阅http://docs.vagrantup.com/v2/synced-folders/)中,编辑都是双向的。主机文件夹和 Vagrant 文件夹始终保持同步。换句话说,它是双向共享的,因此您无需执行任何操作。

      【讨论】:

      • 我不明白,如果我添加行 config.vm.share_folder "virtualenv", "/home/vagrant/devenv", "../virtualenv" 分别指向我在 vagrant 机器上的虚拟环境和主机上的空文件夹,当我 ssh 进入机器并转到该文件夹​​它是空的,通常我的所有文件都用于虚拟环境。您指向的文档解释了如何将文件夹从主机共享给来宾(即使编辑会以两种方式反映出来)。我想要相反,内容在客户机上,我想将它安装在主机上。它似乎不会以这种方式发生。
      • 检查权限。另外,请尝试更新和更通用的“同步文件夹”而不是“共享文件夹”
      • 另外,我相信第二个参数(虚拟环境上的路径)应该是绝对的,所以该行应该类似于:config.vm.share_folder "virtualenv", "/home/vagrant/devenv", "/path/to/virtualenv"
      【解决方案3】:

      你可以在 Vagrant 中创建一个共享文件夹:

      config.vm.synced_folder "data", "/var/www", :mount_options => ["dmode=777","fmode=666"]
      

      将 Mac 共享到 Ubuntu 路径

      config.vm.synced_folder "/Users/Myname/www-vagrant", "/var/www/vagrant",
      

      所有者:“www-data”,组:“www-data”

      【讨论】:

      • 请同时提供代码解释。这将使您的答案更容易理解。
      • 这不会删除虚拟机同步文件夹中的所有内容吗?
      猜你喜欢
      • 2016-03-21
      • 1970-01-01
      • 2017-08-20
      • 2017-08-03
      • 2013-04-05
      • 2016-09-08
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      相关资源
      最近更新 更多