我正在做一个系统性能监控工具,它需要cpu使用率,内存使用率,磁盘使用率和当前进程信息。
我已经在docker中完成了,但是安装和卸载太复杂了,所以我想在docker中完成它。
我已经在容器中挂载了/proc/stat
和/proc/meminfo
,所以我现在可以直接读取主机的cpu使用情况和内存使用情况。
现在我在获取磁盘使用率和当前进程方面遇到了麻烦。在主机中正常,我将运行df
和ps auxf
来获取它们,但它不能在容器中完成。我读了procps的文件,但仍然感到困惑。
(Also我知道怎么做,但我真的不想在ssh中使用remote-command,因为我只是不想做基于密钥的身份验证。请不要推荐这种方式)。
有没有一种方法,比如 mount something into container,可以在docker容器中读取主机的“进程信息”和“磁盘空间使用信息”?
1条答案
按热度按时间wfauudbj1#
有没有一种方法,比如将一些东西挂载到容器中,可以在Docker容器中读取主机的“进程信息”和“磁盘空间使用信息”?
当然可以。您可以将主机的根文件系统和
/proc
文件系统挂载到容器中,如下所示:字符串
然后,在容器内部,您可以通过检查
/host/proc
目录来发现主机进程信息,并且可以通过运行df /host/root
来查看文件系统利用率。当在容器中运行node-exporter时,会使用这种技术; this document示出了相对常见的配置。
请注意,在这种情况下,您将无法使用
ps
,但您可以直接从/host/proc
读取条目。或者,您可以在主机pid命名空间中运行容器:
型
这允许您在容器中运行
ps
以查看主机进程。