说明
我做开发时用到vagrant+docker的形式,我们需要将宿主机中的项目映射到vagrant再在vagrant中将其 挂载到docker,这时会出现一些问题,以下是我遇到的问题和解决方案
1.挂载到docker中的目录为空
这是因为在宿主机还未将项目映射到vagrant中vagrant就将目录挂载到了docker中的缘故,我们可以通过sudo systemctl restart docker 命令重启docker解决如果不想每次手动重启可以再Vagrantfile中写入重启脚本
 config.vm.provision "shell", run:"always", inline: <<-SHELL
    sudo systemctl restart docker
 SHELL
2.项目文件加载速度慢
这个问题是多半由于vagrant需要对项目文件与主机进行同步造成的,这里我们可以启用NFS来解决,我们只需要在Vagrantfile中
挂载目录的那一行末尾加上type:'nfs'就像这样

3.关于MacOS更新成Mojave版本后NFS无法启用问题
MacOS更新成Mojave后原本nfs需要用到的
/etc下的exports文件没有了,不管是 vagrant自动创建还是手动创建你会发现没有权限(即使是root) 这是MacOS的系统保护机制造成的,你需要给某个程序对磁盘的完全访问权限
- 
    打开Mac OS X的system settings> Security & Privacy> privacy选项卡 
- 
    选择Full Disk Access,然后单击加号图标。 
- 
    在列表中添加终端(在我的案例中为iTerm) 
- 
    重启iTerm 
- 
    在iterm中手动创建 /etc/exports文件:sudo touch /etc/exports执行完应该可以看到 /etc下创建的exports文件,这时候就可以按一般步骤启动vagrant了
版权声明
本文为博主lhbasura原创文章,转载请注明出处 https:/lhbasura.github.io/2018/10/23/vagrant_docker_solve/
