【发布时间】:2017-07-05 01:52:45
【问题描述】:
我有 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
但没有任何改变
【问题讨论】:
-
如果是任何语法,它将是第一个带有
o: addr=192.168.100.1,rw,local_lock=all的语法。您是否删除并重新创建了配置了该设置的卷? -
@BMitch 我意识到这个问题可能来自 Linux/Ubuntu/NFS 而不是 Docker 本身。如果我尝试使用
mount -o nfsvers=4,nolock ...在 Ubuntu 中手动挂载我的卷,我仍然会在mount输出中看到local_lock=none。是 Ubuntu 的问题吗?还是 NFS 4? -
@alexpirine docker 只是将该选项传递给操作系统和 NFS 驱动程序,因此很有可能。
-
@BMitch 是的(见编辑评论)。问题是在 docker 实例中,我有“没有可用的锁”错误消息。一切都直接在主机上按预期工作。因此,由于某种原因,NFS 锁在 Docker 容器中不起作用……而且由于
local_lock=all选项被忽略,因此无法忽略它们。 -
@alexpirine
local_lock在我的手册页中被列为仅 nfs 2 或 3 选项。因此,如果您使用的 nfs4 可能无法正常工作。
标签: docker docker-compose mount nfs