«

Docker查看镜像分层构建历史history命令

时间:2026-11-14 07:19     作者:emer     分类: Docker


前言

一个镜像由多层叠加而成,想知道每层做了什么、哪层最占空间、Dockerfile 每一步结果,用 docker history 查看。排查镜像体积过大、复现构建过程时很有用。本文讲解 history 基本用法、看层大小、压缩显示、与 inspect 的区别。

操作步骤

1. 查看镜像构建历史

docker history nginx:1.28

2. 以精简格式输出(不截断命令)

docker history --no-trunc nginx:1.28

3. 按人类可读单位显示大小

docker history -H nginx:1.28

4. 查看某层占用,配合统计

docker history nginx:1.28 --format "{{.Size}}\t{{.CreatedBy}}"

5. 对比基础镜像与最终镜像层

docker history debian:bookworm
docker history myapp:latest

6. 查看镜像详细信息用 inspect

docker inspect nginx:1.28

常见坑

  1. history 只显示构建层,看不到运行时写入的数据卷内容。
  2. 层大小是累计差值,别把每层简单相加等于总大小。
  3. --no-trunc 命令很长,适合定位具体指令。
  4. 多阶段构建只保留最终阶段的层,中间层不显示。
  5. 有些层是虚拟层(shared),大小为 0 正常。
  6. 镜像过大要在 Dockerfile 里合并 RUN、清理缓存,history 帮你定位元凶层。
  7. history 是只读展示,不能修改已有层。

总结

docker history 按层显示镜像构建指令和大小,--no-trunc 看完整命令、-H 看可读单位。它帮助定位体积膨胀层和复现构建过程。优化镜像要回到 Dockerfile 合并命令、清理依赖,history 只是诊断工具。

遇到问题加QQ23979811 协助处理

标签: Docker history 镜像分层 构建