You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker容器内获取宿主机的进程信息与磁盘空间使用信息?

解决方案:通过挂载宿主机目录获取进程与磁盘信息

一、获取宿主机进程信息

你可以直接挂载宿主机的整个/proc目录到容器内的非默认路径(避免覆盖容器自身的/proc),再结合ps命令的参数或自行解析文件来获取进程数据:

  • 启动容器时添加挂载参数:-v /proc:/host/proc:ro(ro表示只读,降低误操作风险)
  • 在容器内执行进程查询命令:ps auxf --root /host/proc,输出效果和宿主机上执行ps auxf完全一致
  • 若你的监控工具是自研的,可直接读取/host/proc下的进程文件(如每个进程目录中的status、cmdline),解析逻辑和在宿主机上读取/proc完全相同

二、获取宿主机磁盘使用率

磁盘使用率依赖读取宿主机各挂载点的文件系统状态,推荐两种可靠方式:

方式1:挂载宿主机根文件系统(只读)

如果需要监控所有磁盘分区的使用率,可将宿主机根目录挂载到容器内的只读路径:

  • 启动容器时添加挂载参数:-v /:/host/root:ro
  • 在容器内执行df命令:df -P /host/root获取根分区使用率,或df -P /host/root/*遍历所有子挂载点
  • 自研工具可通过statfs系统调用访问/host/root对应文件系统,或读取/host/proc/mounts获取所有挂载点后,逐个访问/host/root/<挂载点>解析使用率

方式2:挂载特定分区与挂载点信息

若只需监控指定分区(如/data),可单独挂载目标分区与挂载点配置文件:

  • 启动容器时添加:-v /proc/mounts:/host/proc/mounts:ro -v /data:/host/data:ro
  • 通过cat /host/proc/mounts获取全量挂载点信息,再针对/host/data执行df -P /host/data获取该分区使用率

注意事项

  • 所有挂载建议添加ro只读权限,避免容器操作意外修改宿主机文件系统
  • 不要直接覆盖容器自身的/proc或/目录,否则会导致容器内系统命令失效
  • 部分Linux发行版需调整SELinux/AppArmor策略,确保容器有权限读取宿主机挂载目录

内容的提问来源于stack exchange,提问作者Catscarlet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 18:22:46