You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WSL2 Windows主机上将USB设备挂载至Docker容器

在WSL2 Docker容器中挂载访问USB闪存盘的解决方案

前置准备

  • 确认WSL2为最新版本,Windows主机已启用适用于Linux的Windows子系统和虚拟机平台功能
  • 确保USB闪存盘在Windows系统中正常识别,已分配盘符(如E:)

步骤1:在WSL2中挂载Windows的USB盘符

  1. 打开WSL2终端,创建挂载目录:
    sudo mkdir /mnt/usb
    
  2. 将Windows的USB盘符挂载到WSL2:
    sudo mount -t drvfs E: /mnt/usb
    
    (把E:替换为你的USB实际盘符)
  3. 验证挂载结果:
    ls /mnt/usb
    
    能看到USB内的文件即说明挂载成功。

步骤2:在Docker容器中映射USB目录

启动容器时,直接将WSL2中已挂载的USB目录映射到容器内部:

docker run -it -v /mnt/usb:/container-usb --rm <你的镜像名称>

/container-usb是容器内的目标路径,可根据需求修改。进入容器后,访问该路径即可读取USB内的文件。

步骤3:获取USB设备序列号(若需硬件信息)

如果需要读取USB的硬件序列号,需将设备直接绑定到容器,操作如下:

  1. 在Windows主机的PowerShell中列出所有USB设备:
    usbipd wsl list
    
  2. 找到目标USB的BUSID(如1-2),绑定到WSL2:
    usbipd wsl attach --busid 1-2 --auto-attach
    
  3. 在WSL2终端中定位USB设备路径(通常为/dev/sdX,如/dev/sdb):
    lsblk
    
  4. 启动容器时同时绑定设备并挂载文件系统:
    docker run -it -v /mnt/usb:/container-usb --device=/dev/sdb:/dev/sdb --rm <你的镜像名称>
    
  5. 在容器内读取序列号(以udevadm为例):
    udevadm info --query=property --name=/dev/sdb | grep SERIAL
    

常见问题排查

  • 若usbipd绑定无效,检查Windows防火墙是否拦截usbipd服务,或重启usbipd-win服务
  • WSL2挂载失败时,确保以sudo权限执行mount命令,且Windows盘符未被占用
  • 容器内无法访问设备时,可尝试添加--privileged参数启动容器(注意此参数会赋予容器极高权限,谨慎使用)

内容的提问来源于stack exchange,提问作者Pavel S. Zaitsau

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 17:56:09