欢迎关注我的公众号 [极智视界],获取我的更多经验分享
大家好,我是极智视界,本文介绍一下 docker内访问宿主机usb设备并支持热插拔的方法。
邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码下载,链接:https://t.zsxq.com/0aiNxERDq
这篇文章比较简单,主要介绍一下 docker 内访问宿主机 usb 设备的方法。
在开发的过程中,我们可能会遇到需要在 docker 容器内访问宿主机的设备,比如需要访问宿主机的 usb 设备进行算法的加密等,最直接可能会想到的做法是在创建 docker 容器的时候把宿主机的 usb 设备给挂载进来,这样就可以在 docker 容器内直接 访问/共享 宿主机的 usb 设备了。没错,这里介绍的方法也正是如此。
在创建 docker 容器的时候配置 usb 设备挂载选项,比如:
sudo docker run -it --privileged --net=host --ipc=bridge --ipc=host --pid=host --name docker_name -v /dev/bus/usb:/dev/bus/usb -v /workspace:/workspace image_name /bin/bash
这里最主要的就是打开超级用户权限 --privileged
,然后是挂载 usb 设备 -v /dev/bus/usb:/dev/bus/usb
。这样其实已经就可以了,不信的话还可以验证一下,可以用 lsusb
列出识别到的 usb 设备。但是如果是直接使用 lsusb
是不行的,因为还需要先安装一下。使用下面的命令进行安装:
apt update
apt install linux-tools-generic hwdata
update-alternatives --install /usr/local/bin/usbip usbip /usr/lib/linux-tools/*-generic/usbip 20
然后就可以:
lsusb # 列出识别到的usb设备
而且更加好的一点是,这样的方式是支持热插拔的。
这样就大功告成了。
好了,以上分享了 docker 内访问宿主机 usb 设备并支持热插拔的方法,希望我的分享能对你的学习有一点帮助。
【极智视界】
《极智开发 | docker内访问宿主机usb设备并支持热插拔》
畅享人工智能的科技魅力,让好玩的AI项目不难玩。邀请您加入我的知识星球,星球内我精心整备了大量好玩的AI项目,皆以工程源码形式开放使用,涵盖人脸、检测、分割、多模态、AIGC、自动驾驶、工业等。不敢说会对你学习有所帮助,但一定非常好玩,并持续更新更加有趣的项目。https://t.zsxq.com/0aiNxERDq