docker mount nfs with local_lock = all

Vla*_*ris 7 mount nfs docker docker-compose

我有docker-compose.yml文件

volumes:
  nfs:
      driver: local
      driver_opts:
        type: nfs
        o: addr=192.168.100.1,rw
        device: ":/mnt/storage"
Run Code Online (Sandbox Code Playgroud)

我的容器已装入卷,有选项:

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)
Run Code Online (Sandbox Code Playgroud)

使用local_lock = none,我无法将此选项更改为local_lock =所有 我尝试过:

volumes:
  nfs:
      driver: local
      driver_opts:
        type: nfs
        o: addr=192.168.100.1,rw,local_lock=all
        device: ":/mnt/storage"
Run Code Online (Sandbox Code Playgroud)

volumes:
  nfs:
      driver: local
      driver_opts:
        type: nfs
        o: addr=192.168.100.1,rw
        device: ":/mnt/storage"
        local_lock: all
Run Code Online (Sandbox Code Playgroud)

但没有变化

ale*_*ine 0

无法回答该问题的解决方法是直接在主机上创建 NFS 挂载,然后将挂载的文件夹导出到 docker 卷。这样,Docker 容器就不再需要 NFS 锁。

对于 Docker Swarm 来说这不是一个理想的解决方案,因为它需要在 Swarm 的每个节点上维护 NFS 挂载。