我有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 = none ,我无法将此选项更改为 local_lock = all 我试过了:
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 :(得分:0)
无法解决问题的解决方法是直接在主机上创建NFS挂载,然后将挂载的文件夹导出到docker卷。这样,Docker容器就不再需要NFS锁。
不是Docker Swarm的理想解决方案,因为它需要在群的每个节点上维护NFS挂载。
答案 1 :(得分:0)
您想要的语法是第一个选项:
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选项,因此如果您使用NFS 4该选项可能会被忽略