注意:此镜像已不再在Docker Hub上维护。 请访问 https://github.com/docker/docker-bench-security 获取最新镜像。
!https://raw.githubusercontent.com/docker/docker-bench-security/master/benchmark_log.png "Docker Bench for Security运行截图"
Docker Bench for Security是一个脚本工具,用于检查数十项关于在生产环境中部署Docker容器的常见最佳实践。所有测试均为自动化执行,其灵感来源于CIS Docker Community Edition Benchmark v1.1.0标准。该工具作为Understanding Docker Security and Best Practices博客文章的后续内容发布。
本工具以开源形式提供,使Docker社区能够轻松地根据此基准对其主机和Docker容器进行自我评估。
最简单的使用方式是运行预构建的容器镜像。注意,由于需要对主机进行安全检查,容器需要以较高权限运行,包括共享主机的文件系统、PID和网络命名空间。
bashdocker run -it --net host --pid host --userns host --cap-add audit_control \ -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \ -v /var/lib:/var/lib \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/lib/systemd:/usr/lib/systemd \ -v /etc:/etc --label docker_bench_security \ docker/docker-bench-security
注意:对于不含
auditctl的发行版,审计测试将通过检查/etc/audit/audit.rules文件来验证规则是否存在。解决此问题的特定发行版Dockerfile可在https://github.com/docker/docker-bench-security/tree/master/distros%E4%B8%AD%E6%89%BE%E5%88%B0%E3%80%82
Docker Bench for Security提供以下命令行选项:
-b 可选 不打印彩色输出 -h 可选 打印帮助信息 -l FILE 可选 将输出记录到指定文件 -c CHECK 可选 以逗号分隔的特定检查项列表 -e CHECK 可选 以逗号分隔的要排除的特定检查项列表 -i INCLUDE 可选 以逗号分隔的容器名称中要检查的模式列表 -x EXCLUDE 可选 以逗号分隔的要从检查中排除的容器名称模式列表 -t TARGET 可选 以逗号分隔的要检查的镜像名称列表
默认情况下,Docker Bench for Security脚本将运行所有可用的CIS测试,并在当前目录中生成名为docker-bench-security.sh.log.json和docker-bench-security.sh.log的日志文件。
基于CIS的检查命名为check_<section>_<number>,例如check_2_6,社区贡献的检查命名为check_c_<number>。完整的检查列表可在functions_lib.sh中找到。
使用示例
仅运行检查2.2 确保日志级别设置为'info':
bashsh docker-bench-security.sh -l /tmp/docker-bench-security.sh.log -c check_2_2
运行所有可用检查,但排除2.2 确保日志级别设置为'info':
bashsh docker-bench-security.sh -l /tmp/docker-bench-security.sh.log -e check_2_2
如果需要自行构建和运行容器,可以按照以下步骤操作:
bashgit clone https://github.com/docker/docker-bench-security.git cd docker-bench-security docker build --no-cache -t docker-bench-security . docker run -it --net host --pid host --userns host --cap-add audit_control \ -e DOCKER_CONTENT_TRUST=$DOCKER_CONTENT_TRUST \ -v /var/lib:/var/lib \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /usr/lib/systemd:/usr/lib/systemd \ -v /etc:/etc --label docker_bench_security \ docker-bench-security
bashgit clone https://github.com/docker/docker-bench-security.git cd docker-bench-security docker-compose run --rm docker-bench-security
也可以直接在基础主机上运行脚本:
bashgit clone https://github.com/docker/docker-bench-security.git cd docker-bench-security sudo sh docker-bench-security.sh
该脚本符合POSIX 2004标准,因此应可在任何Unix平台上移植使用。
DOCKER_CONTENT_TRUST: 传递Docker内容信任设置,用于检查镜像签名验证配置为执行全面的安全检查,容器需要挂载以下主机目录:
/var/lib: Docker数据目录/var/run/docker.sock: Docker守护进程套接字/usr/lib/systemd: systemd配置目录(根据操作系统调整)/etc: 系统配置目录对于未包含Docker 1.13.0或更高版本的发行版,或有特定系统配置的环境,可以使用https://github.com/docker/docker-bench-security/tree/master/distros%E6%9D%A5%E8%A7%A3%E5%86%B3%E5%85%BC%E5%AE%B9%E6%80%A7%E9%97%AE%E9%A2%98%E3%80%82
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务