Docker容器内部获取宿主机CPU、磁盘、网卡等信息

Docker容器内部获取宿主机CPU、磁盘、网卡等信息

一、使用挂载宿主机目录方式获取宿主机信息
二、在容器中使用ssh连接到主机获取主机信息

https://blog.csdn.net/wufolangren/article/details/86702274

容器内访问宿主机硬件资源
https://blog.csdn.net/V__KING__/article/details/103997753
https://blog.csdn.net/tianhuanqingyun/article/details/91580778

边缘设备而言,在支持容器化运行的条件下,需要在容器内获取宿主机的硬件资源,完成与宿主机硬件资源的交互。通常在宿主机提供驱动的情况下,容器内需要通过SPI、I2C、UART、USB等协议完成数据的交互。

参照stackoverflow上的回答,Docker提供了三种访问硬件设备的方式:

使用–privileged选项,比如

docker run --privileged -d whatever
使用"–privileged=true"会拥有宿主机上root的权限,这对容器的权限管理而言是极度不安全的,在调试过程中使用并无问题,但在生产环境中却不太合适,所以默认情况下–privileged=false;

使用–device选项,比如

docker run --device /dev/gpiomem -d whatever
使用"–device"可以在不打开–privileged选项的情况下访问宿主机的设备,默认情况下容器拥有读,写,创建设备文件的权限,可以使用“r”,“w”,"m"来管理权限。使用这种方式可以很好地配合自己编写的设备驱动,并在容器内灵活的访问设备节点。

使用–volume选项,比如

docker run -v /sys:/sys -d whatever

挂载数据卷的方式是实现数据持久化最常用的一种方式,它可以通过“rw”,“ro”管理文件的读写权限,因为linux内核文件系统的思想,它同样可以用来访问设备节点,但在实践中访问设备时,有时可能存在访问权限或者其他问题无法在宿主机内直接控制设备节点。

下面在树莓派上编译GPIO驱动,通过–device选项来实现容器内对GPIO的控制。
参考:https://blog.csdn.net/tianhuanqingyun/article/details/91580778

posted @   jiftle  阅读(7964)  评论(0编辑  收藏  举报
编辑推荐:
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
历史上的今天:
2018-08-02 MyBatis传入多个参数的问题
点击右上角即可分享
微信分享提示