“--mount”标志的无效参数:意外键 'addr'

invalid argument for "--mount" flag: unexpected key 'addr'

我想使用 docker nfs 卷。

我尝试过的:

1.先创建一个volume再使用就可以了

docker volume create --driver local --opt type=nfs --opt o=nfsvers=4,addr=10.192.244.109 --opt device=:/var/lib/lava/dispatcher/tmp my1
docker run -it --rm --name nfs-test -v my1:/data alpine sh

2。 docker run时直接用volume也可以

docker run -it --rm --name nfs-test --mount type=volume,volume-driver=local,dst=/data,volume-opt=type=nfs,volume-opt=device=:/var/lib/lava/dispatcher/tmp,"volume-opt=o=addr=10.192.244.109" alpine sh

当我想在docker run中指定nfsvers=4时出现问题:

# docker run -it --rm --name nfs-test --mount type=volume,volume-driver=local,dst=/data,volume-opt=type=nfs,volume-opt=device=:/var/lib/lava/dispatcher/tmp,"volume-opt=o=nfsvers=4,addr=10.192.244.109" alpine sh
invalid argument "type=volume,volume-driver=local,dst=/data,volume-opt=type=nfs,volume-opt=device=:/var/lib/lava/dispatcher/tmp,volume-opt=o=nfsvers=4,addr=10.192.244.109" for "--mount" flag: unexpected key 'addr' in 'addr=10.192.244.109'
See 'docker run --help'.

你可以看到 Item1 表明我们可以在使用 nfs 卷时指定 nfs version,而 Item2 表明我们可以在 docker run 内直接使用 nfs 卷而无需预先创建一卷。

但是,直接用docker run怎么能指定nfs version呢?这里的正确格式是什么?

这对我有用:

--mount 'type=volume,dst=/data,volume-driver=local,volume-opt=type=nfs,volume-opt=device=:/var/lib/lava/dispatcher/tmp,"volume-opt=o=addr=10.192.244.109,rw,nfsvers=4"'

似乎参数解析器对引号很挑剔。 然后它被解析为一个额外的参数。 或者你可以使用 ..,volume-opt=o=nfsvers=4,volume-opt=o=addr=10.192.244.109