首页/云/Docker 容器速查/--pid=host 等宿主命名空间审计
资源与安全50 条

--pid=host 等宿主命名空间审计

共享宿主命名空间的容器不再是隔离单元:--pid=host 可看到并影响宿主进程,--ipc=host、--uts=host 同理,默认应保持各命名空间独立。

Docker 容器速查云更新于 2026-10-13

共享宿主命名空间意味着什么

--pid=host 让容器与宿主共享 PID 命名空间:容器里能看到宿主进程,也能向它们发信号,隔离性基本消失。--ipc=host、--uts=host 同理。默认应保持各命名空间独立,只在明确的受控诊断场景临时使用。

基本信息

语义容器进程与宿主处于同一 PID 视图
风险可见宿主进程、可发信号、调试面扩大
同类参数--ipc=host、--uts=host、--network=host
替代方案宿主侧诊断工具或受控的临时容器
核查inspect 的 PidMode、IpcMode、UTSMode

典型使用场景

  • 批量审计现有容器,找出共享宿主命名空间的实例
  • 迁移或升级前检查模板里是否带进了这类参数
  • 确有需要的诊断场景:限定人员、时长与镜像后临时使用
  • 安全基线核对:把这些参数列为评审项
  • 事故复盘:确认隔离边界是否被削弱

批量核查

批量核查
docker ps -q | xargs -r docker inspect \
  -f '{{.Name}} pid={{.HostConfig.PidMode}} ipc={{.HostConfig.IpcMode}} uts={{.HostConfig.UTSMode}}'
docker inspect -f '{{.HostConfig.Privileged}}' <容器>    # 与特权模式叠加时风险更大

同类参数的风险面

参数共享内容典型风险
--pid=host宿主进程视图可查看并影响宿主进程
--ipc=host进程间通信资源共享内存与消息队列互相影响
--uts=host主机名与域名改变宿主标识,影响依赖名称的服务
--network=host宿主网络栈端口与连接可见性完全放开
诊断场景确实需要共享命名空间时,限定专人、限定时长、限定镜像,用完即删,并把这次使用记录下来。
与 privileged 叠加时权限面明显扩大,审计要按组合项而不是单项看待。
迁移或升级后这些参数常从复制粘贴的模板带进来,属于模板级隐患,检查要覆盖编排文件而不只看运行中的容器。
需要观察宿主进程但不希望放开信号能力时,宿主侧诊断工具通常比共享命名空间更合适。
Compose 里同样可以声明这些参数,仓库中历史编排模板要一并纳入排查范围。

易错点

  • 与 privileged 叠加时权限面明显扩大,审计要按组合项看待
  • 迁移或升级后这些参数从旧模板带进来,属于模板级隐患,排查要覆盖编排文件
  • 临时诊断用完忘记取消共享,隔离性长期缺失,临时放宽要落回编排并复查
  • 只检查运行中的容器,忽略编排文件里遗留的同类参数

数据来源与参考

  • Docker 官方文档:Namespaces(docs.docker.com/engine/security)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌