SorryToPerson logo
返回
Docker2026-04-15·7 分钟

Docker 安全与镜像扫描

介绍 Docker 安全风险、镜像扫描、运行时加固与最小权限实践。

Docker 安全与镜像扫描

1. 镜像安全风险

  • 依赖的基础镜像可能包含已知漏洞。
  • 镜像层中可能包含敏感凭据或密钥。
  • 运行时容器权限过高会扩大攻击面。

2. 镜像扫描工具

常见工具:

  • trivy
  • grype
  • docker scan
  • clair
bash
trivy image myapp:1.0.0

3. 最小权限原则

  • 尽量使用非 root 用户运行容器。
  • 限制容器能力:--cap-drop=ALL--cap-add=
  • 只挂载必需卷,避免读写宿主机敏感目录。
bash
docker run --rm -u 1000:1000 --cap-drop=ALL --cap-add=NET_BIND_SERVICE myapp:latest

4. 镜像内容检查

  • 使用 docker history 查看镜像层。
  • 通过 docker run --rm -it image sh 进入容器检查文件。
bash
docker history myapp:latest
docker run --rm -it myapp:latest sh

5. 运行时安全加固

  • 使用 --read-only 只读文件系统。
  • 指定 --tmpfs /tmp 让临时目录驻留内存。
  • 使用 --pids-limit 防止 fork 炸弹。
bash
docker run --rm --read-only --tmpfs /tmp --pids-limit=100 myapp:latest

6. 镜像更新与生命周期

  • 及时更新基础镜像和依赖。
  • 删除不再使用的镜像,避免长期持有已知漏洞库。
  • 定期对 CI/CD 产物进行扫描。

7. 额外建议

  • 使用 docker content trust 验证镜像签名。
  • 在私有注册表中启用访问控制和审计日志。
  • 对构建环境和部署环境分别设定不同的安全策略。
Docker安全镜像扫描