Chainguard 低漏洞容器镜像
Chainguard 在 Docker Hub 发布的免费容器镜像,基于 Wolfi,面向低已知 CVE 与较小攻击面。完整目录和带版本号的 Production 镜像在 Chainguard 自己的仓库 cgr.dev。 https://images.chainguard.dev/
特色镜像推荐
Wolfi Base(chainguard/wolfi-base)
Wolfi 的基础镜像,带 shell 和包管理器 apk,默认进入 shell。适合作为 Dockerfile 的基底安装所需软件。也可从 cgr.dev/chainguard/wolfi-base 拉取。
Static(chainguard/static)
本组织中拉取量最高的极简镜像,适合作为静态二进制的最终运行阶段,减少随发行版带入的组件。
Python(chainguard/python)
Chainguard 免费 Python 镜像。Docker Hub 提供 latest;需要固定主次版本、FIPS 或企业支持时,改从 cgr.dev 的 Production 镜像获取。
Node.js(chainguard/node)
Chainguard 免费 Node.js 镜像,用于构建和运行 Node 服务。与其他免费镜像一样,Docker Hub 侧以最新版本为主。
Nginx(chainguard/nginx)
基于 Wolfi 的 Nginx 免费镜像,用于反向代理和静态资源。配置方式以该镜像在 Images Directory 中的说明为准。
Chainguard 低漏洞容器镜像集合
推荐技术栈
基础
免费镜像
仓库
典型使用场景
替换基础镜像
在多阶段构建里用 chainguard/python、chainguard/node 或 chainguard/go 编译,再用 chainguard/static 或对应的 distroless 镜像运行。
需要 shell 的基底
从 chainguard/wolfi-base 开始,用 apk 安装缺少的工具。生产环境更推荐 Chainguard 已经打包好的专用镜像。
固定版本的生产镜像
需要锁定主次版本和企业支持时,从 cgr.dev 拉取 Production 镜像,而不是只使用 Docker Hub 上的 latest。
常见问题 (FAQ)
Q1:Docker Hub 上的 Chainguard 镜像和 cgr.dev 有什么区别?
Docker Hub 的 chainguard/* 是免费镜像,主要是 latest。同一免费镜像也可以 docker pull cgr.dev/chainguard/镜像名。完整目录、历史版本、FIPS 和企业支持的 Production 镜像只在 Chainguard 仓库提供。遇到 Docker Hub 拉取限制时,官方说明可以改从 cgr.dev 拉取。
Q2:wolfi-base 和其他镜像有什么不同?
wolfi-base 带 shell 和 apk,适合进入容器或在 Dockerfile 里安装包。多数应用镜像尽量去掉 shell 和包管理器,只保留运行该软件所需的文件。需要排查时再使用带 -dev 或调试变体,具体以 Images Directory 里该镜像的说明为准。
Q3:为什么换上 Chainguard 基础镜像之后扫描仍有 CVE?
Chainguard 负责镜像内来自 Wolfi 的组件,并每晚重建以吃进上游补丁。在镜像之上自行加入的软件、语言依赖和未改用 Chainguard 包的部分,不在这个范围内。免费镜像不提供旧版本的长期补丁,旧包会随时间积累漏洞;需要钉住旧版本时应使用 Production 镜像。