docker volume nfs权限被拒绝

时间:2018-03-27 15:23:08

标签: ubuntu docker freebsd volume nfs

我撞墙了:(

我尝试在docker中使用NFS卷来通过docker swarm共享/访问容器状态数据。但我已经无法创建一个工作量。 我阅读了很多SO线程,docker文档等等。

据我所知,至少有两种方法可以完成这项工作。内置docker volume和外部docker-volume驱动程序。我更愿意使用docker volume

我使用FreeBSD计算机作为NFS服务器,使用两个ubuntu客户端作为docker节点。我创建了NFS共享并将其手动挂载到ubuntu机器上:

mount -o v3 -t nfs 10.0.0.108:/usr/srv/docker/registry /mnt
mount | grep nfs
    10.0.0.108:/usr/srv/docker on /mnt type nfs (rw,relatime,vers=3,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=10.0.0.108,mountvers=3,mountport=794,mountproto=udp,local_lock=none,addr=10.0.0.108)

到目前为止一切顺利。现在我尝试创建一个docker卷:

docker volume create \
    --driver local \
    --opt type=nfs \
    --opt device=:/usr/srv/docker/registry \
    --opt "o=addr=10.0.0.108,vers=3,rw" 
    registry

在这里,我尝试了几个版本的"o=...."

Docker在创建卷时返回成功...或者只是编写卷名而没有任何注释:)

下一步:测试音量:

docker run --rm -i -v=registry:/tmp/myvolume busybox ls -lA /tmp/myvolume

那是错误"堆积的时刻"。

在NFS服务器上:

Mar 27 17:17:51 $host mountd[1002]: mount request denied from 10.0.0.106 for /usr/srv/docker/registry

在泊坞窗节点上:

docker: Error response from daemon: 
 error while mounting volume '/var/lib/docker/volumes/registry/_data': 
  error while mounting volume with options: 
   type='nfs' device=':/usr/srv/docker/registry' o='addr=10.0.0.108,vers=3,mountaddr=10.0.0.108,mountvers=3': 
    permission denied.

据我所知,文档permission denied是kernel / nfs-client的输出。但我不明白为什么会这样。

有什么建议吗?

谢谢!

编辑: 使用的Docker版本是:

Docker version 17.12.1-ce, build 7390fc6

1 个答案:

答案 0 :(得分:0)

在FreeBSD服务器上你可以安装文件系统。

使用以下方法检查您的挂载点:

mount

然后编辑或创建/ etc / exports文件:

# if /usr/srv/docker/registry is a moutpoint 
/usr/srv/docker/registry -network 10.0.0.0 -mask 255.0.0.0
# if /usr/srv/docker/registry is a direcoty under /usr
/usr -alldirs -network 10.0.0.0 -mask 255.0.0.0

如果您使用ZFS,您还可以使用“zfs”激活共享,请参阅联机帮助页。