最近在做产品授权的东西,开始宿主机为Window,程序获取机器硬件信息相对简单些,后来部署时发现各种各样的的环境问题,所有后来改用dokcer部署,docker方式获取宿主机信息时花了些时间,特此记录一下docker 获取宿主机的信息// dmidecode -t 4 | grep ID | tail -1 // CPUID// 系统// dmidecode -s system-serial-number // 查看系统序列号// dmidecode -s system-uuid // 查看系统UUID// dmidecode -s system-product-name//查看服务器系统型号// dmidecode -s processor-manufacturer | tail -1 // 处理器厂家// 主板// dmidecode -s baseboard-product-name // 主板型号// dmidecode -s baseboard-serial-number // 主板序列号// dmidecode -s baseboard-manufacturer // 主板厂家实际项目当中,我获取了CPUID、系统序列号、系统UUID、系统型号、处理器厂家,之所有获取这么多信息标识机器 , 是考虑到有些信息在某些系统可能为空,而且CPUID也不唯一了,所以就多获取些 。
调查下来 , docker 获取宿主机信息大体可以通过三种方式
- 通过环境变量由外部传入容器内
- 使用挂载宿主机目录方式
- 在容器中使用ssh连接到主机
- 在DockeFile中增加环境变量配置节点 (此步骤主要用来设置参数默认,也可以省略,通过其它方式设置)
- 在程序启动时应用获取程序变量并应用
- 在docker run 时通过-e参数传递到容器中
【Docker容器获取宿主机信息】将宿主机的如下两个目录挂载到容器中
// dmidecode程序的目录 , 如果不挂载那么容器中识别不了dmidecode命令/usr/sbin/dmidecode或者/sbin/dmidecode// dmidecode调用时会使用到mem这个文件,如果不挂载会找不到文件/dev/mem在容器启动时增加 --privileged = true参数,让容器获得近似于宿主机root的权限
三:在容器中使用ssh连接到主机思路:在docker容器内安装ssh,sshpass服务,通过ssh连接到宿主机执行命令 , 获 取宿主机信息(必须知道宿主机Ip和密码)
步骤:
- 安装服务 yum -y install openssh-server
- 修改配置 vim /etc/ssh/sshd_config PermitRootLogin的值修改为yes保存退出
- 启动ssh服务 systemctl start sshd.service
- 设置开机启动 systemctl enable sshd.service
- 安装sshpass yum -y install sshpass
https://blog.csdn.net/weixin_42173451/article/details/123085460
推荐阅读
- NIKKE:胜利女神教堂图纸在哪里获取
- 怎么去除蜂蜡里面的杂质 容器上的蜂蜡怎么清洗
- 沾福卡怎么获取2022 沾福卡怎么获取
- wps获取资源失败怎么办 为什么wps获取资源失败
- 泰拉瑞亚神圣钻头怎么合成神圣钻头获取攻略 泰拉瑞亚神圣钻头怎么合成
- B站,优酷哪个素质更好?
- 16号凤求凰返场,仅需1788,张飞加入钻石获取,你觉得如何?
- 微信如何获取苏康码
- 使命召唤手游斧头怎么获得 使命召唤手游斧头怎么获取
- 容器苗直插生根法原理 容器苗直插生根法