docker hardened image(DHI)安全加固镜像
dhi.io 本质上是Docker 官方提供的一个专用镜像仓库(registry),用于分发:
Docker Hardened Images(DHI,安全加固镜像)
它类似于:
docker.io(Docker Hub)ghcr.io(GitHub Container Registry)
但定位不同:
| registry | 用途 |
|---|---|
| docker.io | 通用镜像仓库 |
| dhi.io | 安全加固镜像专用仓库 |
1. dhi.io 镜像的核心特性
1.1 安全优先(核心价值)
DHI 镜像是 Docker 官方推出的安全基线镜像:
- 最小化组件(减少攻击面)
- 默认非 root 运行
- 去掉 shell / 包管理器(很多版本)
- 零已知漏洞(CVE)发布策略
👉 本质类似:
- distroless
- Chainguard images
1.2 供应链安全增强
DHI 镜像内置:
- SBOM(软件物料清单)
- SLSA provenance(构建来源证明)
- 签名验证
👉 用于:
- 合规(金融 / 政企)
- DevSecOps
- 软件供应链安全
1.3 使用方式(和 Docker Hub 一样)
拉取镜像
1 | docker login dhi.io |
Dockerfile
1 | FROM dhi.io/python:3.13 |
运行
1 | docker run --rm dhi.io/python:3.13 python -c "print('hello')" |
👉 使用方式完全兼容 Docker 生态
2. 和 Docker Hub 镜像的本质区别
| 维度 | Docker Hub 普通镜像 | dhi.io 镜像 |
|---|---|---|
| 安全性 | 不保证 | 强制安全基线 |
| 体积 | 较大 | 极简 |
| CVE | 可能存在 | 目标为 0 CVE |
| 可调试性 | 有 shell | 很多没有 |
| 默认用户 | root | 非 root |
| 供应链元数据 | 无 | 完整 SBOM |
3. 典型使用架构
3.1 多阶段构建(标准范式)
graph TD A[dev image - dhi.io/python:3.13-dev] --> B[build阶段 编译/安装依赖] B --> C[runtime image - dhi.io/static] C --> D[最终运行容器]
说明:
-dev:带编译工具static:极简运行环境
这是 DHI 官方推荐模式
4. 注意事项(踩坑点)
4.1 必须登录
1 | docker login dhi.io |
否则:
unauthorized: Unauthorized
👉 和 Docker Hub 不同,默认需要认证 ([Docker Documentation][3])
4.2 没有 shell / apk / apt
很多镜像:
1 | /bin/sh: not found |
👉 这是设计,不是 bug
解决:
- 使用
-dev镜像 - 或 multi-stage build
4.3 不适合直接开发环境
适用场景:
- 生产环境(runtime)
- 安全要求高系统
- K8s workload
不适合:
- debug
- 手工运维容器
5. 一句话总结
dhi.io = Docker 官方安全镜像仓库(Hardened Images),用于替代传统基础镜像,构建“默认安全”的容器运行环境