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

Windows下Docker挂载网络驱动器为卷失败的解决咨询

在Windows主机上正确挂载网络目录为Docker卷的解决方案

我之前也踩过Windows上Docker挂载网络共享的坑,结合实操经验给你几个可行的解决办法:

方法1:先将网络共享映射为Windows本地驱动器号

这是最稳妥的方式,因为Docker对Windows本地盘符的支持比直接的UNC路径更可靠:

  1. 在Windows中映射网络驱动器:右键「此电脑」→「映射网络驱动器」,选择一个未使用的盘符(比如Z:),输入网络共享路径\\NetworkDirectory\Folder,勾选「登录时重新连接」,完成映射。
  2. 使用映射后的盘符执行Docker命令:
    docker run -v Z:/:/data alpine ls /data
    
    如果共享目录里有空格,记得给路径加引号:
    docker run -v "Z:/My Shared Folder":/data alpine ls /data
    

方法2:直接使用UNC路径(针对WSL2后端)

如果你用的是WSL2作为Docker后端,可以先在WSL环境中挂载网络共享,再让Docker访问WSL里的挂载路径:

  1. 在WSL终端中创建挂载目录:
    sudo mkdir /mnt/networkshare
    
  2. 挂载网络共享(替换your_usernameyour_password为你的Windows账户凭据):
    sudo mount -t cifs //NetworkDirectory/Folder /mnt/networkshare -o username=your_username,password=your_password,vers=3.0
    

    注意:vers=3.0指定使用SMBv3协议,避免SMBv1的安全问题,也能提升兼容性。

  3. 执行Docker命令挂载WSL中的路径:
    docker run -v /mnt/networkshare:/data alpine ls /data
    
    要是想让WSL开机自动挂载,可以把挂载命令添加到/etc/fstab文件中。

方法3:调整Docker服务的运行权限

Docker默认可能用本地系统账户运行,导致没有访问网络共享的权限:

  1. 打开Windows的「服务」管理器(按下Win+R,输入services.msc回车)。
  2. 找到「Docker Desktop Service」,右键选择「属性」→「登录」选项卡。
  3. 选择「此账户」,输入你的Windows用户名和密码,点击「应用」后重启Docker服务。
  4. 再次尝试执行最初的UNC路径挂载命令,大概率就能正常访问了。

额外注意事项

  • 确保网络共享使用的是SMBv2或SMBv3协议,SMBv1不仅不安全,还可能和Docker存在兼容性问题。
  • 如果网络共享需要域账户权限,在输入凭据时要加上域名前缀,比如domain\username

内容的提问来源于stack exchange,提问作者Salmaan P

火山引擎 最新活动