Vagrant 和 Docker nfs 失败:错误的文件描述符

Vagrant and Docker nfs failed: Bad file descriptor

经过大量审查,尝试在 Vagrant 中使用 rsync,并以 Docker 作为提供程序。 (双向同步) 我继续使用 nfs 在 VM boot2docker

中同步我的文件

我在 vagrant up

之后收到了这个 vagrant 错误消息
dockerhost: Mounting NFS shared folders...
The following SSH command responded with a non-zero exit status.
Vagrant assumes that this means the command failed!

mount -o 'vers=3,udp' 192.168.50.1:'/Users/myMac/workspace/docker-vagrant/test' /project

Stdout from the command:

Stderr from the command:

mount: RPC: Unable to receive; errno = No route to host
mount: mounting 192.168.50.1:/Users/myMac/workspace/docker-vagrant/test on /project failed: Bad file descriptor

Vagrantfile

Vagrant.configure("2") do |config|
 config.vm.box = "dduportal/boot2docker"
 config.vm.define "dockerhost"
 config.vm.network "forwarded_port", guest: 8000, host: 8000
 config.vm.network "private_network", ip: "192.168.50.4"
 config.vm.synced_folder "../", "/project", type: "nfs"
...

我的 mac 已经有了 nfs,因为使用 nfsd start

启动了服务

在 Vagrant 文档中建议使用 rsync,但我没有找到从虚拟机 rsync 到我的 MAC 的方法,反之亦然。

我正在使用

我直接在 dduportal/boot2docker 项目上发布了我的问题。

如果您的自定义 Docker 主机位于不同的目录中,那么这是正确的配置。

config.vm.synced_folder "../", "/vagrant", type: "nfs", mount_options: ["nolock", "vers=3", "udp"], id: "nfs-sync"

参考: https://github.com/dduportal/boot2docker-vagrant-box/issues/48