如何将Windows主机文件夹共享给Windows Docker容器并挂载NFS驱动器
报错原因
你收到的options are not supported on this platform报错,核心原因是Windows容器运行时原生不支持直接通过docker run的--mount参数创建NFS类型的卷,Linux容器下的NFS卷挂载逻辑不适用于Windows容器场景。
可行解决方案
方案1:宿主机预挂载NFS后绑定传入容器(最稳定)
这是目前Windows容器挂载NFS的推荐方案,操作步骤如下:
- 首先在Windows宿主机启用NFS客户端:打开「控制面板→程序→启用或关闭Windows功能」,勾选「NFS服务」分类下的「NFS客户端」,配置完成后重启宿主机生效。
- 在宿主机执行挂载命令,将目标NFS共享映射为本地盘符:
执行后确认宿主机的M盘可以正常读写NFS共享内的文件。mount \\192.168.0.10\FileSystem-D M: - 修改你的docker run命令,删除原有的NFS类型--mount参数,替换为宿主机盘符绑定挂载参数即可,修改后完整命令如下:
这里添加的docker run -v "$HOME\foo:C:\Users\ContainerAdministrator\foo" -v M:\:M:\ --isolated process -p 80:80 -p 81:81 -p 443:443 -p 8080:8080 -p 8081:8081 -p 4848:4848 -it --entrypoint="docker-entrypoint.bat" docker/win2019 cmd--isolated process是指定进程隔离模式,避免Hyper-V隔离模式下无法访问宿主机网络驱动器的问题。
方案2:容器内部直接挂载NFS
如果不允许在宿主机挂载NFS,可以选择在容器内部完成挂载操作:
- 首先需要给Windows容器安装NFS客户端功能,可进入容器后执行PowerShell命令安装:
Install-WindowsFeature NFS-Client - 安装完成后直接在容器内执行挂载命令即可使用:
如果需要固化该能力,可以将NFS客户端安装命令写入Dockerfile,构建自定义镜像使用。mount \\192.168.0.10\FileSystem-D M:
注意事项
- 两种方案都需要提前在NFS服务器侧配置权限,放通宿主机/容器的IP访问权限,避免出现权限拒绝错误。
- 进程隔离模式要求宿主机的Windows系统版本和容器镜像的Windows内核版本匹配,否则会启动失败,如果版本不匹配只能使用方案2。
内容的提问来源于stack exchange,提问作者Asad
相关产品推荐
相关产品推荐

