首页/云/Docker 容器速查/内核能力收敛 --cap-drop / --cap-add
资源与安全50 条

内核能力收敛 --cap-drop / --cap-add

默认容器持有约十余项 Linux capabilities:用 --cap-drop=ALL 清空后按需 --cap-add 单个能力,比 --privileged 精确得多。

Docker 容器速查云更新于 2026-10-12
默认受限能力集合(非全部)
收敛--cap-drop=ALL --cap-add=NET_BIND_SERVICE
检查/proc/self/status 的 CapEff + capsh 解码

示例

示例
docker run -d --cap-drop=ALL --cap-add=NET_BIND_SERVICE --name web nginx:1.27-alpine
docker run --rm --cap-drop=ALL alpine sh -c 'grep CapEff /proc/self/status'
docker run --rm alpine sh -c 'grep CapEff /proc/self/status'
常用按需项:NET_BIND_SERVICE(低端口)、CHOWN、SETUID/SETGID(切用户场景)、SYS_PTRACE(调试,慎用)。

易错点

  • 先 drop ALL 再逐个加是可行路径,但要覆盖真实运行路径(含健康检查与迁移脚本)
  • cap_add 列表来自复制粘贴时容易带入不必要的能力,定期用 inspect 复核

数据来源与参考

  • Docker 官方文档:Runtime privilege and Linux capabilities(docs.docker.com)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌