docker挂载nfs与local_lock =所有

我有docker-compose.yml文件

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 =无 ,我不能改变这个选项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 

但没有任何变化

local_lock docker/compose源代码中无处可见 local_lock
在撰写文件版本3参考中也不可见

这似乎表明你不能通过docker compose单独来改变它。

解决方法是不直接在主机上创buildNFS挂载,然后将挂载的文件夹导出到Docker卷。 这样,Docker容器不再需要NFS锁。

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

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

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

这只是通过操作系统。 你可能没有看到这个卷挂载的任何区别的原因是, local_lock被列为NFS 2或NFS 3 only选项,所以如果你使用的是NFS 4,那么这个选项可能会被忽略。