我有一个导出文件系统的 NFS 服务器。
showmount -e nfsserver
Export list for nfsserver:
/opt/application/aghas0/docker client1,client2
在 client2 服务器上,我已经从 nfsserver 安装了文件系统并且有效。
nfsserver:/opt/application/aghas0/docker 9.8G 23M 9.2G 1% /opt/application/aghas0/docker
所以我尝试创建一个名为 nfsvol 的 NFS Docker Volume
docker volume inspect nfsvol
[
{
"CreatedAt": "2019-07-16T16:31:47+02:00",
"Driver": "local",
"Labels": {},
"Mountpoint": "/var/lib/docker/volumes/nfsvol/_data",
"Name": "nfsvol",
"Options": {
"device": ":/opt/application/aghas0/docker",
"o": "addr=nfsserver_Ip,rw",
"type": "nfs"
},
"Scope": "local"
}
]
但是当我尝试将此卷安装到容器时,出现以下错误:
docker run -it -v nfsvol:/mnt alpine sh
docker: Error response from daemon: error while mounting volume with options: type='nfs' device=':/opt/application/aghas0/docker' o='addr=10.118.120.46,rw': input/output error.
我正在使用 NFS4。不知道这个版本有没有具体的配置。请问有人知道如何解决这个问题吗?
答案1
发现问题了。
当我创建 docker 卷时,我必须将使用的 nfs 版本作为选项传递,如下所示:
docker volume create --driver local --opt type=nfs --opt o=addr=nfsserver_IP,rw,vers=4 --opt device=:/opt/application/aghas0/ansible nfsvol
这解决了我的问题