You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker构建失败:如何通过SHA256哈希运行对应镜像?

解决Docker BuildKit构建失败后获取中间镜像的问题

一、验证BuildKit是否启用

  • 检查会话级启用状态:执行 echo $DOCKER_BUILDKIT,输出为1则当前会话已启用BuildKit
  • 查看全局配置:执行 cat /etc/docker/daemon.json,若包含 "features": { "buildkit": true } 则Docker daemon全局启用BuildKit
  • 确认Buildx版本:执行 docker buildx version,输出中带有buildkit字样则说明BuildKit已启用

二、获取构建失败前的中间镜像

BuildKit默认不会将构建过程中的中间镜像导入本地镜像库,需调整构建参数来保留这些镜像:

方法1:重新构建时导出中间镜像到本地

执行构建命令时添加--output=type=docker参数,BuildKit会将所有成功阶段的镜像导入本地Docker镜像列表:

docker build --build-arg env=development . --progress=plain --output=type=docker

构建失败后:

  • 执行 docker images 查看最近创建的镜像,定位失败前最后一个成功构建的镜像
  • 直接使用构建输出中成功步骤对应的SHA256哈希运行容器:
docker run -it <成功步骤的sha256哈希> /bin/bash

方法2:指定构建到失败前的阶段

如果Dockerfile使用多阶段构建,或能明确失败前的阶段,可通过--target参数指定构建到该阶段,直接生成可运行镜像:

docker build --build-arg env=development . --progress=plain --output=type=docker --target=<失败前的阶段名>

之后即可用生成的镜像执行docker run命令。

三、保留BuildKit的注意事项

上述方法均基于BuildKit构建,不会禁用BuildKit功能。若需长期保留中间镜像缓存,可添加--cache-from参数指定缓存源,日常调试使用--output=type=docker已足够满足需求。

内容的提问来源于stack exchange,提问作者mpen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 19:15:52