将 NFS(托管在 Hyper-V 上的 Ubuntu 上)安装到 Docker 容器

将 NFS(托管在 Hyper-V 上的 Ubuntu 上)安装到 Docker 容器

我们有两台计算机,其中一台运行 Windows Server 2016,另一台运行 Windows 10 Enterprise。该服务器托管一个 NFS 共享(用于 NTFS 文件系统),该共享是在以下情况下创建的教程

该服务器还具有一个 Hyper-V VM(Ubuntu 16.04),它在 ext4 文件系统中托管 NFS 服务器。

为了方便起见,我们将其命名如下:

  • WA = 带有 Windows Server 2016 的服务器
  • WB = 装有 Windows 10 的客户端服务器
  • HA = WA 中的 Hyver-V VM

HA 的 nfs 导出如下所示:

/nfsshare *(rw,sync,no_subtree_check) 

用户和组/nfsshare更改为nobody,nogroup。

客户端计算机 WB 可以从 WA 和 HA 挂载 NFS 共享。

在客户端计算机中,我们使用适用于 Windows 的 Docker 运行 Linux 容器。容器以 SYS_ADMIN 的附加功能运行,并处于特权状态。我们可以从容器中 ping WA 和 HA 的 IP。

当我们尝试挂载 NFS 共享时,它成功挂载了 WA 的 NFS 共享,但是令我们惊讶的是,在挂载 HA 的 NFS 共享时,它抛出了以下错误。

mount.nfs: timeout set for Wed Nov  7 10:50:49 2018
mount.nfs: trying text-based options 'nolock,hard,sec=sys,vers=4.1,addr=10.0.0.142,clientaddr=172.17.0.4'
mount.nfs: mount(2): Operation not permitted
mount.nfs: Operation not permitted

我们无法弄清楚这里的问题到底是什么。

对于所有挂载操作,我们使用以下命令

mount -v -t nfs -o nolock,hard,sec=sys,vers=4.1 IP:/nfshare /mnt/data

注:WA 和 WB 均位于 Windows 域网络中

如果解释很复杂的话:

图像

编辑1:现在,我们在客户端的 Hyper-V VM 中创建了一个 Linux 实例(我们称之为 HB)。HB 可以从 WA 和 HA 挂载 NFS 共享。第一个问题仍然是个谜。

相关内容