docker容器接入canbus

本文介绍了如何在Ubuntu主机的Docker容器中安全地访问CAN卡,以接收并处理CAN总线上的信号。推荐使用--device选项而非privileged模式,以降低潜在的安全风险。通过挂载设备节点、网络及必要目录,实现了容器内程序对CAN信号的读取。测试表明,该方法有效且可控。

如何在容器内部获取宿主机硬件设备

环境: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/ 

如有错误请指正

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值