コンテナにNFSボリュームをマウント

コンテナにNFSボリュームをマウント

エクスポートされたファイルシステムを持つ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ボリュームを作成してみました。

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

これは私の問題を解決しました。

関連情報