Docker 安全最佳实践 14 条

Docker 安全 14 条军规:官方镜像、版本锁定、最小权限、网络分段、密钥管理、不暴露 daemon socket、资源限额、rootless 模式、漏洞扫描、镜像签名验证、日志监控等,按影响与实施难度排布。

最佳实践
容器模块与编排港口插画

直接回答:Docker 安全是个体系问题,14 条核心实践:用官方镜像并锁版本、保持 Docker 与宿主机更新、镜像最小化、最小权限运行(非 root)、网络分段、密钥用 Secrets、Dockerfile lint、绝不暴露 daemon socket、限资源、rootless 模式、镜像漏洞扫描、镜像签名验证 验签、日志集中监控。

高影响低难度(先做这些)

  1. 用官方镜像:Docker Hub 官方镜像有维护与安全响应
  2. 锁版本:选受支持的版本并固定审核过的 digest;标签可变,固定后仍需安全更新
  3. 保持更新:Docker 引擎与宿主机补丁及时打
  4. 最小权限:容器内 USER 非 root;--cap-drop ALL 按需加回
  5. 不暴露 daemon socket:/var/run/docker.sock 挂进容器 = 把宿主机钥匙交出去

高影响高难度(体系化建设)

  1. 镜像最小化:多阶段构建、distroless——攻击面随体积缩
  2. 网络分段:前后端分网络,数据库不出内部网络
  3. 密钥管理:Docker Secrets 或外部密钥系统,拒绝环境变量与硬编码
  4. Dockerfile lint:hadolint 进 CI,坏味道构建期拦截
  5. 资源限额:--memory/--cpus 防单个容器拖垮宿主
  6. rootless 模式:守护进程本身非 root 运行,纵深防御
  7. 漏洞扫描:Trivy 扫镜像进 CI,高危漏洞阻断发布
  8. 镜像签名验证:Docker Official Images 的 DCT 正在退役,新工作流评估 Sigstore/Cosign 或 Notation;签名不等于无漏洞
  9. 日志集中监控:容器日志与审计事件分别采集,保留容器 ID、镜像 digest 和事件时间。用一次测试操作确认记录能追到具体镜像与容器;镜像扫描和宿主机审计仍由相应安全工具负责。

常见问题(FAQ)

Q:14 条全做成本太高,最小可行集是什么?
A:官方镜像+锁版本、非 root 运行、不暴露 socket、漏洞扫描四条——只是起点,还要保护宿主机、身份和发布链。

Q:rootless 模式有什么限制?
A:部分网络能力(低端口绑定)与存储性能有损耗;追求极致兼容的场景可先只对非核心主机启用。

Q:K8s 环境这些还适用吗?
A:镜像和最小权限原则适用;K8s 常用 containerd/CRI-O,不能照搬 Docker daemon 配置,还需(RBAC、NetworkPolicy、PodSecurity)。共享内核容器不构成虚拟机级安全边界,不可信负载应另评估沙箱或虚拟机。

官方参考

本文依据官方文档整理,示例未在本文中进行运行验证。生产部署需按所用版本、权限和实际负载验证。

延伸阅读

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台