据说Docker会自动将SysFs挂载为只读
在中国,我只需要一种选择,将以下内容以汉语进行重述:背景。
我正在尝试建立一个Docker Swarm集群时遇到了一些奇怪的问题,所以我进行了一些调查。虽然我没有看过规范文件,但这是一个关于它的行为的笔记。(如果有更详细的规范,请告诉我,谢谢!)
注意:这篇文章是我在7月31日之后放置两个月的,所以我已经不记得详细内容了…
怀疑的事情
这里有一个名为 RPi-Exporter 的主机温度获取和 Prometheus 指标导出程序。
有一个名为Docker-ARM-Exporter的项目,将其Docker化处理。
根据rpi_cpu_temperature_celsius的数值在重新加载时的变动,可以确认已成功读取主机温度。为什么无需绑定任何东西就能读取呢?这是这次的疑问点。
你是如何读取主机温度的呢?
我在那裡查看了源代碼,發現了一個句子 `ioutil.ReadFile(“/sys/class/thermal/thermal_zone0/temp”)`,通過讀取這個句子似乎可以獲取溫度。
在Debian/Stretch容器中进行验证
有了其他的疑问
我知道默认情况下它已挂载,因此可以读取温度,但还有其他令我担忧的事情。
/sys/class是什么东西?
/sys/class是放置设备符号链接的目录。
https://www.wdic.org/w/TECH//sys/class
他人对他有什么评头论足的吗?
他似乎还受到了其他很多压力。
这个可以写进去吗?
看起来它被挂载为只读模式。
https://forums.docker.com/t/unable-to-mount-sys-inside-the-container-with-rw-access-in-unprivileged-mode/97043
实际尝试后也无法写入。
安全性怎么样?
以下是对给出的网页链接进行的本地化汉语重述:
可能会有一些风险存在。
最后确定的是
即使Docker容器未挂载任何卷,也可以运行并读取系统的某些部分。虽然无法进行写操作,但仍有可能出现一些攻击线索,所以谨慎起见是没有错的。