Docker
Produção
Imagens
Segurança
DevOps
Containerização

用于生产的 Docker:构建轻量级且安全的映像

用于生产的 Docker:构建轻量级且安全的映像

Docker 改变了软件交付方式,但在生产中使用容器需要纪律。大型图像会增加存储成本和部署时间,而漏洞可能会使您的环境遭受攻击。本指南介绍了确保轻量级、安全且可版本控制的映像的最佳实践

基本的良好实践

  • 多阶段构建,在一个阶段编译代码并仅复制最终工件。
  • 简约基础镜像,首选 2 或 3 来减少攻击面。
  • 切勿包含凭据,4 文件、密钥或令牌切勿复制到映像中。
  • 以非 root 用户身份运行,创建专用用户并配置容器以使用它。
  • 没有5的版本,使用语义标签(6)进行追溯和回滚。

多阶段 Dockerfile (Node.js) 的精益示例,9 行

0

图像安全检查表

  • 使用 Trivy、Clair 或 Snyk 扫描漏洞
  • 检查不必要的层 (7)。
  • 在 Dockerfile 中定义非 root 用户
  • 删除临时文件 (8)。
  • 使用 Docker Content Trust 签署镜像以确保完整性。

版本控制策略

标签何时使用
9稳定发布,兼容semver。
10发布候选版本以供测试。
11CI 自动化构建,可追溯。

简化的 CI/CD 集成 (GitHub Actions),7 行

1

结论

通过应用这些实践,您可以获得更小更安全易于版本控制的映像,从而降低运营成本并减轻生产中的漏洞风险。


您已经采用了哪些 Docker 策略?在评论中分享!

另请阅读

  • [生产中的 Kubernetes:迁移之前没有人告诉你的事情12
  • [现代 CI/CD:自信部署的艺术13
  • [生产中的 Cloudflare Workers:hello world 之后发生了什么变化14
  • [生产中的 D1:性能、限制以及无法单独扩展的内容15
  • [生产中的耐用物品:法案将是什么样子以及令人惊讶的限制16
  • [在生产中实施功能标记和逐步推出17