首页/开发/CI/CD 与发布速查/基础镜像选择与维护
构建与制品管理58 条

基础镜像选择与维护

选官方或可信镜像、固定到具体版本(或 digest),建立定期更新通道:基础镜像的漏洞会传导到所有上层镜像。

CI/CD 与发布速查开发更新于 2026-10-13

基础镜像选择与维护是什么

基础镜像(base image)是每个容器镜像的底座,它的漏洞会传导到所有上层镜像:底座不维护,上层再多加固也白费。三个决策点:来源(官方镜像、发行版镜像、distroless、内部基线镜像)、固定粒度(精确版本 tag 或 digest)、更新通道(用机器人订阅上游更新,重跑构建与扫描)。内部基线镜像把时区、证书、非 root 用户等加固预置好,上层项目继承即可,减少每个项目重复配置。

基本信息

来源官方镜像、发行版镜像、distroless、内部基线镜像
固定node:20.11.1-slim 比 node:latest 可复现;更严可固定 digest
更新用机器人订阅基础镜像更新,重跑构建与扫描
权衡slim/alpine 体积小,但 musl 与 glibc 差异、工具缺失要评估

典型使用场景

  • 多项目统一基线:全部服务继承内部基线镜像,加固一次、全员受益。
  • 漏洞治理:底座升级一轮,所有上层镜像重建后同步受益。
  • 可复现构建:固定精确版本或 digest,构建结果不随上游 tag 漂移。
  • 离线环境:内部镜像仓库统一同步所需底座,断网也能构建。
  • 语言运行时升级:由平台团队统一推进基础镜像版本,替代各项目各自为战。

固定版本示例

固定版本示例
FROM node:20.11.1-bookworm-slim
# 需要完全可复现时固定 digest:
# FROM node@sha256:<digest>
# 内部基线继承:
# FROM registry.example.com/base/node20-hardened:1.4.2

底座类型对比

类型特点适用
官方镜像维护活跃、体积中等通用场景
slim 变体精简但保留包管理多数服务
alpine体积最小,musl 生态有差异静态编译、小工具
distroless无 shell、攻击面小,排障手段少生产运行
内部基线预置加固与合规配置企业统一管理
内部基线镜像统一加固(时区、证书、非 root 用户),上层项目继承减少重复配置;加固项变更时平台侧集中发布。
固定 digest 不是「一劳永逸」:更新需要显式改 digest,靠机器人或批处理推动,配合定期重建让补丁持续进入。

易错点

  • 上游 tag 被重推(不同机构维护策略不同):重要系统固定 digest 或定期核对内容。
  • 基础镜像多年不升:已知漏洞长期存在,建立季度更新节奏并纳入扫描报告对比。
  • alpine 与 glibc 依赖不兼容:原生扩展编译失败或运行报错,按依赖栈改用 slim 系底座。
  • 内部基线与上游脱节:分支久了补丁没同步,设定同步责任人。
  • 只看体积不看维护热度:社区停更的镜像漏洞无人修,选型时看更新时间与来源可信度。

数据来源与参考

  • Docker Docs《Docker Official Images》
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌