泊坞窗安装NFS与local_lock =所有

问题描述:

我有搬运工人,compose.yml文件泊坞窗安装NFS与local_lock =所有

volumes: 
    nfs: 
     driver: local 
     driver_opts: 
     type: nfs 
     o: addr=192.168.100.1,rw 
     device: ":/mnt/storage" 

与选择我的容器已安装的卷:

type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.100.1,mountvers=3,mountproto=tcp,local_lock=none,addr=192.168.100.1) 

local_lock =无,我可以” t将此选项更改为local_lock =全部 我试过了:

volumes: 
    nfs: 
     driver: local 
     driver_opts: 
     type: nfs 
     o: addr=192.168.100.1,rw,local_lock=all 
     device: ":/mnt/storage" 

volumes: 
    nfs: 
     driver: local 
     driver_opts: 
     type: nfs 
     o: addr=192.168.100.1,rw 
     device: ":/mnt/storage" 
     local_lock: all 

,但没有任何变化

+0

如果是任何语法,它将是第一个使用'o:addr = 192.168.100.1,rw,local_lock = all'的。您是否使用配置的设置删除并重新创建了音量? – BMitch

+0

@BMitch我意识到这个问题可能来自Linux/Ubuntu/NFS而不是Docker本身。如果我尝试使用'mount -o nfsvers = 4,nolock ...'在Ubuntu中手动挂载我的卷,我仍然在'mount'output中看到'local_lock = none'。这是一个Ubuntu问题吗?还是NFS 4? – alexpirine

+0

@alexpirine docker只是将这个选项传递给操作系统和NFS驱动程序,所以这是一个很好的可能性。 – BMitch

一种解决方法,不回答这个问题是创建NFS直接安装在主机上,然后安装文件夹导出到一个码头工人的体积。这样,Docker容器不再需要NFS锁。

不是Docker Swarm的理想解决方案,因为它需要在群集的每个节点上维护NFS挂载。

+0

clusterssh对于固定数量的虚拟机可以帮助或者可以设置vms – herm

你想要的语法是第一个选项:

volumes: 
    nfs: 
     driver: local 
     driver_opts: 
     type: nfs 
     o: addr=192.168.100.1,rw,local_lock=all 
     device: ":/mnt/storage" 

这仅仅是直通到OS。您可能没有看到与卷装有任何区别的原因是local_lock仅作为NFS 2或NFS 3选项列出,所以如果您使用的是NFS 4,则该选项可能会被忽略。

+0

嗯,这是正确的答案,但不能解决问题,不幸的是......任何使用NFS 4本地锁的方式? – alexpirine

+0

我不认为这是nfs4中的一项支持功能。如果你需要这个选项,你需要降级。 – BMitch