Docker Bench for Security 是一款基于 CIS Docker Benchmark 标准的自动化安全检测工具,通过 sudo sh docker-bench-security.sh 即可快速执行检查,输出 PASS/WARN/FAIL 结果及修复建议,覆盖主机配置、守护进程、容器运行时等关键项,并支持 JSON 输出与 CI/CD 集成。

直接用 Docker Bench for Security 工具执行检查,它会自动比对 CIS Docker Benchmark 标准,输出清晰的合规项、失败项和修复建议。不需要手动“写”配置检查逻辑——那是工具的事;你需要做的是正确运行它,并理解关键检查项背后的配置要求。
快速运行安全检查
推荐在宿主机上直接运行(新手最稳):
- 克隆仓库:
git clone https://github.com/docker/docker-bench-security - 进入目录并执行:
sudo sh docker-bench-security.sh - 加
-j参数可输出 JSON(需提前装jq):sudo sh docker-bench-security.sh -j | jq '.'
结果中每条检查都标注了「PASS」「FAIL」或「WARN」,并附带对应配置位置(如 /etc/docker/daemon.json 或 /var/run/docker.sock 权限)。
使用 Python 脚本下载 Docker 镜像并打包为 tar 文件。用户说“下载镜像”“拉取镜像”“pull xxx”“帮我下载 nginx 镜像”等时触发。支持 SOCKS5 代理直连(推荐)和国内镜像站加速两种模式。
核心配置项对应哪些检查
工具检查的不是“代码”,而是实际运行环境是否符合安全基线。常见重点项包括:
-
TLS 加密启用:检查
daemon.json是否含"tls": true及证书路径配置 -
docker.sock 权限:检查是否仅 root 和 docker 组可读写(
srw-rw---- 1 root docker) -
用户命名空间启用:检查
daemon.json是否有"userns-remap": "default" -
默认桥接网络隔离:检查
"icc": false(禁用容器间通信) -
内容信任开启:检查环境变量
DOCKER_CONTENT_TRUST=1是否生效
把检查融入日常流程
别只靠手动跑一次。真正有效的策略是让检查自动化:
- CI/CD 流水线中加入镜像扫描(如 Trivy)+ 守护进程配置检查(Bench)
- 在
docker-compose.yml中显式声明资源限制(mem_limit,cpus),这会被 Bench 检查为“是否设限” - Dockerfile 中写
USER appuser和HEALTHCHECK,构建后用docker inspect验证是否生效,Bench 会检测这些运行时属性
工具本身不修改配置,但它明确告诉你“哪一行该改、改哪里、为什么改”。照着 FAIL 项逐条修复,就是最实在的安全策略落地。

















