首页 文章

尝试从Windows中的Docker访问USB设备

提问于
浏览
9

我无法找到关于如何从Windows中的Docker访问USB设备的任何说明,尽管来自Mac OS X的说明非常接近,尽管指令here .

所以我在Windows上尝试这个,这是我到目前为止所做的:

  • 将Oracle VirtualBox升级到5.0.16,并安装了Oracle VM VirtualBox Extensions Pack,它允许boot2docker VM使用USB 2.0访问我的设备 .

  • 关闭 default 虚拟机电源,然后转到机器→设置...→USB . 通过从弹出列表中选择机器,添加了新的USB过滤器 .

  • 重新启动Docker Quickstart终端 .

问题是,我怀疑运行虚拟机实例的命令如下:

docker run --privileged -v <USB directory in host machine>:<USB directory in Docker container> ...

问题是,虽然在Mac OS X中它似乎是 /dev/bus/usb ,它在Windows中出现在哪里?不是同一个地方吗? /dev/ 目录似乎没有 /dev/usb/ .

我错过了一步吗? USB设备路径是否在Windows的不同位置?

顺便说一句,这是我在键入 docker -v 时使用的Docker版本:

Docker version 1.10.0, build 590d5108

我目前也在使用Windows 7 .

2 回答

  • 1

    虽然没有看到/ dev / bus / usb并输入以下命令,但看起来像是咬着子弹:

    docker run -it --privileged -v /dev/bus/usb:/dev/bus/usb ...
    

    (在我的情况下,它是 docker run-it --privileged -v /dev/bus/usb:/dev/bus/usb -v (shared directory path):(path in container) debian:latest bash ,但你的命令将根据你正在做的不同而不同) .

    此外,如果您正在使用Android设备并且想要在引导加载程序中仍然访问它们,则需要在VirtualBox中创建两个过滤器:一个用于何时使用ADB,另一个用于当您使用ADB时使用fastboot .

  • 1

    我能够在带有Docker Toolbox的Windows主机上运行,我假设OP正在使用它 .

    停止boot2docker vm:

    host:~$ docker-machine stop default
    

    打开VirtualBox管理器并根据需要添加USB过滤器 .

    启动boot2docker vm:

    host:~$ docker-machine start default
    

    由于USB设备连接到boot2docker VM,因此需要从该计算机运行命令 . 使用VM打开终端并运行Docker运行命令:

    host:~$ docker-machine ssh
    docker@default:~$ docker run -it --privileged ubuntu bash
    

    如果您希望Docker容器与容器启动后插入的USB设备一起使用,您可以使用:

    docker@default:~$ docker run -it --privileged -v /dev:/dev ubuntu bash
    

    我看到的大多数其他示例都使用 -v /dev/bus/usb:/dev/bus/usb ,它只适用于某些USB设备 . 我必须使用 /dev 作为插入USB端口时创建 /dev/sg2 的应用程序 .

    注意,标志 -it 仅作为示例在此处使用,以便您可以在Ubuntu容器内获得Bash终端 . 它们实际上并不是必需的 .

相关问题