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
2
docker login dhi.io
docker pull dhi.io/python:3.13

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
2
/bin/sh: not found
apk: not found

👉 这是设计,不是 bug

解决:

  • 使用 -dev 镜像
  • 或 multi-stage build

4.3 不适合直接开发环境

适用场景:

  • 生产环境(runtime)
  • 安全要求高系统
  • K8s workload

不适合:

  • debug
  • 手工运维容器

5. 一句话总结

dhi.io = Docker 官方安全镜像仓库(Hardened Images),用于替代传统基础镜像,构建“默认安全”的容器运行环境