校验和不匹配(sha256 digest verification failed)并非镜像被篡改,而是本地缓存的 manifest 或 layer 元数据与远程 registry 当前内容不一致;应优先清空 ~/.docker/manifests/*(Linux/macOS)或 %USERPROFILE%.docker\manifests\(Windows),无需重启 Docker,下次 pull 将重新获取完整 manifest。

校验和不匹配(sha256 digest verification failed)不是镜像被篡改,而是本地缓存的 manifest 或 layer 元数据跟远程 registry 当前返回的内容对不上。最直接有效的办法是清理对应缓存后重试,不用重启 Docker 服务。
清空 manifest 缓存(推荐首选)
这是最轻量、最精准的操作,只删掉导致校验错的元数据,不影响镜像、容器或构建缓存:
-
Linux / macOS:运行
rm -rf ~/.docker/manifests/* -
Windows:删除
%USERPROFILE%\.docker\manifests\下全部内容
执行后,下次 docker pull 会重新从 registry 获取完整 manifest,避免复用旧平台或损坏的 digest。
针对 CI 环境或构建场景
如果是在 docker build --pull 过程中报校验错,说明构建时复用了已损坏的 layer 缓存:
- 加
--no-cache参数强制跳过本地 layer 复用:docker build --no-cache --pull -t myapp . - 构建前清理 build cache:
docker builder prune -a - 启用 BuildKit 可提升元数据一致性:
DOCKER_BUILDKIT=1 docker build --pull -t myapp .
检查平台是否匹配并显式指定
多架构镜像(multi-arch)容易因宿主机自动选型出错,比如在 Apple M1 上拉 x86_64 镜像,缓存混入不兼容 digest:
- 拉取时明确指定平台:
docker pull --platform linux/amd64 nginx:alpine - 查镜像支持的平台:
docker buildx imagetools inspect nginx:alpine(需启用 buildx)
私有仓库需确认内容信任配置
若用的是启用了签名验证(如 Notary/Cosign)的私有 registry,客户端未开启校验也会触发类似报错:
- 临时启用内容信任:
DOCKER_CONTENT_TRUST=1 docker pull your-registry/image:tag - 不推荐绕过:
docker pull --disable-content-trust=false ...(仅调试用)


















