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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM