作为卷映射使用NFS装载的SQL Server docker容器

我想在ubuntu上运行SQL Server作为使用搁置的microsoft / mssql-server-linux:docker镜像的docker容器。 对于数据持久性,我使用docker run命令中的-v选项将卷从我的主机(具有ext4文件系统)映射到容器,如下所示

docker run -it -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=######' -p 1433:1433 -v /var/opt/database:/var/opt/mssql/data microsoft/mssql-server-linux 

容器运行得很好,我可以连接到数据库。 但是由于数据库规模的扩大和群体原因,我不想将数据存储在主机上。 现在我想在其他机器上运行一个NFS服务器,并将nfs目录挂载到我的docker主机上,然后在卷映射中使用这个nfs目录,现在卷映射是

 -v /var/nfs/database:/var/opt/mssql/data 

其中/var/nfs/database是docker主机上的nfs装载目录。 现在,当我启动容器,我得到以下错误

2017-08-18 10:15:53.98 spid5s FCB ::打开失败:无法打开文件/var/opt/mssql/data/master.mdf文件编号为1.操作系统错误:87(该参数不正确。)。 2017-08-18 10:15:53.98 spid5s错误:5120严重性:16,状态:101. 2017-08-18 10:15:53.98 spid5s无法打开物理文件“/ var / opt / mssql / data / master.mdf”。 操作系统错误87:“87(参数不正确)”。 2017-08-18 10:15:54.13 spid5s错误:17204,严重性:16,状态:1. 2017-08-18 10:15:54.13 spid5s FCB ::打开失败:无法打开文件/ var / opt / mssql /data/mastlog.ldf(文件编号为2)。操作系统错误:87(参数不正确)。 2017-08-18 10:15:54.13 spid5s错误:5120严重性:16,状态:101. 2017-08-18 10:15:54.13 spid5s无法打开物理文件“/ var / opt / mssql / data / mastlog.ldf”。 操作系统错误87:“87(参数不正确)”。

我给了数据库文件的所有权限。 下面是nfs的安装片段

sharedstorageIp:/ var / nfs nfs4 443G 47G 375G 11%/ var / nfs

发行说明解释说你不能这样做:

此版本不支持在NFS服务器上托pipe数据库文件。 这包括将NFS用于共享磁盘故障转移群集以及非群集实例上的数据库。 我们正在努力在即将发布的版本中启用NFS服务器支持。

在networkingpath上托pipe数据库文件并不是微不足道的,因为数据库对可靠性的要求很高。 在协议版本2.2之前,不能在SMB共享上存放文件。