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

Windows宿主机如何向Linux Docker容器挂载USB2CAN Dongle设备

Windows宿主机Docker Linux容器挂载USB2CAN设备操作步骤

1. 前置环境校验

  • 确认Docker Desktop已启用WSL2后端:打开Docker Desktop设置 -> 通用,勾选Use the WSL 2 based engine,如果未开启需要先勾选并重启Docker生效。
  • Hyper-V后端的Docker对USB透传支持不完善,建议优先切换到WSL2后端操作。

2. Windows侧安装USB透传工具

WSL2本身无法直接识别宿主机USB设备,需要通过USB/IP工具实现透传:

  • 以管理员权限打开PowerShell,执行如下命令安装USB/IP工具:
winget install --interactive --exact dorssel.usbipd-win
  • 安装完成后重启电脑生效。

3. 将USB2CAN设备挂载到WSL2

  • 插入USB2CAN Dongle到Windows宿主机,管理员权限打开PowerShell,执行命令查看所有已连接的USB设备:
usbipd list
  • 在输出列表中找到USB2CAN设备对应的BUSID,格式一般为x-x(如1-3),记录该值。
  • 执行命令将设备绑定到USB/IP服务:
usbipd bind --busid <你的设备BUSID>
  • 执行命令将设备附加到WSL2:
usbipd attach --wsl --busid <你的设备BUSID>
  • 打开WSL2终端,执行lsusb确认能识别到USB2CAN设备,再执行ls /dev | grep -E "can|ttyACM"找到对应的设备节点(一般为/dev/can0或/dev/ttyACM0),记录设备路径。

4. 启动容器时挂载USB设备

启动Linux容器时添加--device参数传入对应的设备节点即可,示例命令:

docker run -it --device=/dev/can0 --device=/dev/ttyACM0 <你的镜像名称> /bin/bash
  • 如果容器需要更高的设备操作权限,可以额外添加--privileged参数,或者通过--group-add dialout给容器添加串口设备操作组权限。
  • 如果使用docker-compose部署,在yml文件中添加devices配置段即可:
services:
  your-service:
    image: your-image
    devices:
      - "/dev/can0:/dev/can0"
      - "/dev/ttyACM0:/dev/ttyACM0"
    # 可选配置权限
    privileged: true

5. 容器内验证

进入容器后执行lsusb和ls /dev,确认能看到对应的USB2CAN设备,之后就可以正常加载CAN模块、配置波特率使用设备。

注意事项

  • 每次拔出USB2CAN设备或者重启电脑后,需要重新执行usbipd attach命令将设备挂载到WSL2,再启动容器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 01:45:05