You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Windows Server 2019下创建Docker CIFS卷时提示“options are not supported on this platform”错误的解决方案及疑问

问题解答:Windows Server 2019 Docker创建CIFS卷报错平台不支持选项

没错,你碰到的这个错误确实意味着当前Windows平台的Docker版本不支持用local驱动挂载CIFS共享的这些选项,具体原因和解决方法如下:

为什么会报错?

你使用的Docker版本是17.12.0-ce,这是非常早期的版本。在当时的Windows Docker环境(基于Hyper-V后端)里,local卷驱动仅支持Windows本地文件系统的挂载逻辑,完全不兼容Linux环境下的type=cifso=username,password这类参数——这些是Linux系统挂载CIFS共享的标准选项,Windows Docker的local驱动并没有实现对它们的支持。

可行的解决方案

方案1:先在Windows主机挂载CIFS共享,再给Docker用

这是最直接的兼容方法:

  1. 在Windows Server 2019上手动挂载CIFS共享到本地盘符(比如映射为Z:):
    net use Z: \\device-ip\folder /user:username password
    
  2. 然后创建Docker卷或者直接在容器中映射这个盘符:
    • 创建卷:
      docker volume create --driver local --opt device=Z: cifstest
      
    • 运行容器时直接映射:
      docker run -v Z:/container/path your-image
      

方案2:升级Docker版本并切换到WSL2后端

你的Docker版本过于老旧,建议优先升级到最新稳定版(比如20.x以上):

  1. 升级后将Docker后端切换为WSL2(Windows Server 2019需要先启用WSL2功能);
  2. 在WSL2的Linux环境中,你可以直接使用Linux的CIFS挂载命令,或者用Docker的local驱动配合type=cifs参数创建卷——因为WSL2本质是Linux内核,完全支持这些参数。

方案3:使用第三方卷驱动

如果不想升级Docker,可以尝试第三方的docker-volume-netshare驱动,它专门支持跨平台的网络共享卷(包括CIFS):

  1. 下载并安装对应Windows版本的docker-volume-netshare
  2. 启动驱动服务后,用它创建CIFS卷:
    docker volume create --driver netshare --opt type=cifs --opt device=//device-ip/folder --opt "o=username=username,password=password" cifstest
    

额外提醒

17.12.0-ce不仅存在功能限制,还包含不少已修复的安全漏洞,强烈建议你升级到官方支持的最新Docker版本,这样能获得更好的兼容性和稳定性。

内容的提问来源于stack exchange,提问作者Feiga Lubow

火山引擎 最新活动