教程 docker tutorial

镜像扫描与安全检查

Docker 镜像可能包含安全漏洞和不安全依赖,定期扫描和安全检查是容器安全管理的重要环节。

1. 为什么需要镜像扫描

  • 镜像可能含有已知漏洞软件包
  • 发现安全漏洞可防止容器被攻击
  • 遵守企业安全合规要求

2. 官方工具:Docker Scan

  • Docker CLI 内置扫描功能,基于 Snyk:
bash
docker scan myimage:latest

`

  • 功能:

    • 检测操作系统和应用依赖漏洞
    • 提供漏洞详细信息和修复建议

3. 使用第三方扫描工具

3.1 Trivy

  • 轻量级安全扫描器:
bash
trivy image myimage:latest
  • 支持:

    • 漏洞扫描(OS & 应用依赖)
    • 配置文件安全检查(CIS Docker Benchmark)

3.2 Clair / Anchore

  • 集成 CI/CD,自动扫描镜像并生成报告
  • 支持多种注册表和策略管理

4. CI/CD 集成扫描示例

  • GitHub Actions 使用 Trivy:
yaml
jobs:
  scan:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - name: Set up Trivy
        uses: aquasecurity/trivy-action@master
      - name: Scan Docker image
        with:
          image-ref: myusername/myapp:latest
  • GitLab CI 集成:
yaml
scan_image:
  stage: test
  image:
    name: aquasec/trivy:latest
  script:
    - trivy image myregistry/myapp:latest

5. 安全检查最佳实践

  • 使用轻量基础镜像(Alpine、Slim)
  • 多阶段构建减少不必要依赖
  • 定期扫描镜像并修复漏洞
  • 在 CI/CD 流程中强制镜像扫描
  • 对生产环境镜像使用签名验证(Docker Content Trust)

通过镜像扫描与安全检查,可以及早发现和修复漏洞,提高容器安全性,保障生产环境的稳定可靠运行。