如何在容器内部获取宿主机硬件设备
环境:ubuntu主机 can卡
目的:容器内获取到canbus发送的值并返回
镜像环境:
FROM ubuntu:18.04
# ADD c++编写的获取本机can信号的程序 在次不做赘述
测试之前现在容器外做下测试 看能不能收到can信号
方法一 privileged
docker run 命令加入 --privileged
privileged 可以让容器获取宿主机root权限 这样做虽然可以实现 接收到can信号 但是容器程序没有控制好 可能对外部环境造成影响
方法二 device 推荐
docker run -it --rm --network=host --device /dev/:/dev/ -v /tmp:/tmp/ -v /run/udev:/run/udev/ --name=can can:1 bash
加上–device 为dev附上读写权限 实现获取can信号
注意
以上要确保使用的是宿主机的网络 视情况挂载对应目录
--network=host
-v /tmp:/tmp/ -v /run/udev/:/run/udev/
如有错误请指正