docker image history
| 描述 | 显示镜像历史 |
|---|---|
| 用法 | docker image history [OPTIONS] IMAGE |
| 别名 | docker history |
描述
显示镜像历史
选项
| 选项 | 默认值 | 描述 |
|---|---|---|
--format | 使用自定义模板格式化输出 'table': 以带列标题的表格格式打印输出(默认) 'table TEMPLATE': 使用给定的 Go 模板以表格格式打印输出 'json': 以 JSON 格式打印 'TEMPLATE': 使用给定的 Go 模板打印输出。 有关使用模板格式化输出的更多信息,请参阅https://docs.container.net.cn/go/formatting/ | |
-H, --human | true | 以人类可读的格式打印大小和日期 |
--no-trunc | 不截断输出 | |
--platform | API 1.48+ 显示给定平台的历史。格式为 os[/arch[/variant]](例如,linux/amd64) | |
-q, --quiet | 仅显示镜像 ID |
示例
查看 docker:latest 镜像是如何构建的
$ docker history docker
IMAGE CREATED CREATED BY SIZE COMMENT
3e23a5875458 8 days ago /bin/sh -c #(nop) ENV LC_ALL=C.UTF-8 0 B
8578938dd170 8 days ago /bin/sh -c dpkg-reconfigure locales && loc 1.245 MB
be51b77efb42 8 days ago /bin/sh -c apt-get update && apt-get install 338.3 MB
4b137612be55 6 weeks ago /bin/sh -c #(nop) ADD jessie.tar.xz in / 121 MB
750d58736b4b 6 weeks ago /bin/sh -c #(nop) MAINTAINER Tianon Gravi <ad 0 B
511136ea3c5a 9 months ago 0 B Imported from -
查看 docker:apache 镜像是如何添加到容器的基础镜像的
$ docker history docker:scm
IMAGE CREATED CREATED BY SIZE COMMENT
2ac9d1098bf1 3 months ago /bin/bash 241.4 MB Added Apache to Fedora base image
88b42ffd1f7c 5 months ago /bin/sh -c #(nop) ADD file:1fd8d7f9f6557cafc7 373.7 MB
c69cab00d6ef 5 months ago /bin/sh -c #(nop) MAINTAINER Lokesh Mandvekar 0 B
511136ea3c5a 19 months ago 0 B Imported from -
格式化输出 (--format)
格式化选项 (--format) 将使用 Go 模板美观地打印历史输出。
Go 模板的有效占位符如下所示
| 占位符 | 描述 |
|---|---|
.ID | 镜像 ID |
.CreatedSince | 如果 --human=true,则为自镜像创建以来的时间,否则为镜像创建时的时间戳 |
.CreatedAt | 镜像创建时的时间戳 |
.CreatedBy | 用于创建镜像的命令 |
.Size | 镜像磁盘大小 |
.Comment | 镜像评论 |
当使用 --format 选项时,history 命令要么完全按照模板声明输出数据,要么在使用 table 指令时包含列标题。
以下示例使用不带标题的模板,并输出 busybox 镜像的 ID 和 CreatedSince 条目,两者之间用冒号 (:) 分隔
$ docker history --format "{{.ID}}: {{.CreatedSince}}" busybox
f6e427c148a7: 4 weeks ago
<missing>: 4 weeks ago
显示特定平台的历史记录 (--platform)
如果存在多个平台,--platform 选项允许您指定要显示哪个平台变体的历史记录。默认情况下,docker history 显示守护程序的原生平台的历史记录,如果不存在,则显示第一个可用平台的历史记录。
如果本地镜像存储有镜像的多个平台变体,--platform 选项会选择要显示哪个变体的历史记录。如果给定的平台不存在于本地镜像缓存中,则会产生错误。
平台选项采用 os[/arch[/variant]] 格式;例如,linux/amd64 或 linux/arm64/v8。架构和变体是可选的,如果省略,则回退到守护程序的默认值。
以下示例拉取 alpine:latest 镜像的 RISC-V 变体并显示其历史记录。
$ docker image pull --quiet --platform=linux/riscv64 alpine
docker.io/library/alpine:latest
$ docker image history --platform=linux/s390x alpine
IMAGE CREATED CREATED BY SIZE COMMENT
beefdbd8a1da 3 weeks ago /bin/sh -c #(nop) CMD ["/bin/sh"] 0B
<missing> 3 weeks ago /bin/sh -c #(nop) ADD file:ba2637314e600db5a… 8.46MB
以下示例尝试显示 alpine:latest 平台变体的历史记录,该变体不存在于本地镜像存储中,从而导致错误。
$ docker image ls --tree
IMAGE ID DISK USAGE CONTENT SIZE IN USE
alpine:latest beefdbd8a1da 10.6MB 3.37MB
├─ linux/riscv64 80cde017a105 10.6MB 3.37MB
├─ linux/amd64 33735bd63cf8 0B 0B
├─ linux/arm/v6 50f635c8b04d 0B 0B
├─ linux/arm/v7 f2f82d424957 0B 0B
├─ linux/arm64/v8 9cee2b382fe2 0B 0B
├─ linux/386 b3e87f642f5c 0B 0B
├─ linux/ppc64le c7a6800e3dc5 0B 0B
└─ linux/s390x 2b5b26e09ca2 0B 0B
$ docker image history --platform=linux/s390x alpine
Error response from daemon: image with reference alpine:latest was found but does not match the specified platform: wanted linux/s390x