|
|

Manifest Digest(清单摘要)
指的是一个具体平台(如 linux/amd64)的镜像清单(manifest)的唯一标识。
它是该 manifest 文件内容的哈希值(通常是 SHA-256),格式为:sha256:...
每个 manifest 描述了一个具体的镜像层(layers)、配置文件(config blob)以及运行时元数据。
如果你拉取的是单个架构的镜像(比如只支持 amd64),那么你操作的就是一个 manifest digest。
Index Digest(索引摘要)
指的是一个 镜像索引(manifest list 或 OCI index) 的摘要。
用于支持多架构镜像(multi-arch images),它不直接包含镜像层,而是列出多个不同平台对应的 manifest digest。
相当于一个“指针列表”,告诉客户端:“如果你是 arm64,请用这个 digest;如果你是 amd64,请用那个 digest”。
常见于使用 docker buildx 构建并推送的多平台镜像。
Index vs Manifest
- Index Digest:像是一本多语言书籍的目录页,告诉你中文版在哪一章、英文版在哪一章。
- Manifest Digest:像是某一语言版本的具体章节内容,可以直接阅读。
如下图:
Nginx 镜像测试
首先确保网络能够正常访问:https://registry-1.docker.io/v2/,如下图:
地址:超链接登录可见。
Index digest 查看命令:
输出如下:
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.index.v1+json",
"manifests": [
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 2290,
"digest": "sha256:bd1578eec775d0b28fd7f664b182b7e1fb75f1dd09f92d865dababe8525dfe8b",
"platform": {
"architecture": "amd64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 841,
"digest": "sha256:0c798fdea148c2a4aa684526de6dc2baeed661e364ac2ef3f2ef7693fb1c1029",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 2292,
"digest": "sha256:5dd53c4c2197dda60eec710dee3496b37b54745745e770bf7ba5841390edbae2",
"platform": {
"architecture": "arm",
"os": "linux",
"variant": "v5"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 841,
"digest": "sha256:4b2afec60ddfb19ec75f5fb15a055a9b2671b7a344c48815b43098dd5b1bfed8",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 2292,
"digest": "sha256:e7b13d0becb2bfe336926aeb4f762debc2a3ba0ece7b2d48910fe5c94667aa9b",
"platform": {
"architecture": "arm",
"os": "linux",
"variant": "v7"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 841,
"digest": "sha256:e43007b688de2eab645b9c679cac0aadcab6f5658077cc218c75d7f3b81dfff3",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 2292,
"digest": "sha256:63a931a2f5772f57ed7537f19330ee231c0550d1fbb95ee24d0e0e3e849bae33",
"platform": {
"architecture": "arm64",
"os": "linux",
"variant": "v8"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 841,
"digest": "sha256:36198c74d4f6dc69c85e84e08bd575423cb2b8734036e0c13d13d0ef8c575d42",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 2289,
"digest": "sha256:ac27e318cff1c5340d9a2c2d8db5f0a374dabfe1f285f81348008e01bd980d4d",
"platform": {
"architecture": "386",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 841,
"digest": "sha256:dcb4b9a4f4b0547645addbc05a7c6a9fbed5c06bc68521875cdc6be518a4afa0",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 2292,
"digest": "sha256:9e20a218b4054bee7c688bb34c86de076f44fc8c85d51fa93a567dd62bb7225d",
"platform": {
"architecture": "ppc64le",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 841,
"digest": "sha256:bf59f6482ee5ca10fa33ffb269872719ae1b536bfe24cee02e2c4e0959b048e5",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 2292,
"digest": "sha256:61da52d2a49c2e8db79132503f5e40796c13644843e9fbf5f9858fe415517936",
"platform": {
"architecture": "riscv64",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 841,
"digest": "sha256:649388a8bee7af8b33030867a0e2f7245065a8ee0bf7bd30e83b9f64fe27208a",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 2290,
"digest": "sha256:80d64129dd9588ab5e1969cb58e46e90b9f3944408e3f4811c3a18958da7e941",
"platform": {
"architecture": "s390x",
"os": "linux"
}
},
{
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"size": 841,
"digest": "sha256:0b43f48991de9b554893968d8e0b6fcd5a2aaa82b36d98b91246eadcaeeead97",
"platform": {
"architecture": "unknown",
"os": "unknown"
}
}
]
}
Manifest digest 查看命令:
输出如下:
{
"schemaVersion": 2,
"mediaType": "application/vnd.oci.image.manifest.v1+json",
"config": {
"mediaType": "application/vnd.oci.image.config.v1+json",
"digest": "sha256:d261fd19cb63238535ab80d4e1be1d9e7f6c8b5a28a820188968dd3e6f06072d",
"size": 8748
},
"layers": [
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:d7ecded7702a5dbf6d0f79a71edc34b534d08f3051980e2c948fba72db3197fc",
"size": 29778104
},
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:266626526d42cf7fe5f56b933db3f4c59c0596b7e2c3a556ba5ec4981daf3e9d",
"size": 29970043
},
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:320b0949be89766f7c6a8746f1971021a8e8c84928af00454c0f9c6e38ebf54c",
"size": 628
},
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:d921c57c6a81addac6ca451906699ca6ee8c01fd708805a928181c5370b0a30c",
"size": 956
},
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:9def903993e4ef9a3faa02bb893b0382768a4d466d51247bff1ea80b119377a1",
"size": 404
},
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:52bc359bcbd74bb3d11b94cf3c6d94bcf9bd2d3e450483fb978124ceddb9ca57",
"size": 1210
},
{
"mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
"digest": "sha256:e2f8e296d9df1dd5e2ddc81e5e758f9762fdb932e982ac6873e36692c3e3c983",
"size": 1398
}
],
"annotations": {
"com.docker.official-images.bashbrew.arch": "amd64",
"org.opencontainers.image.base.digest": "sha256:ae614fe11cb373155bf26b938154c34bed87aa701f2f55a4ef03f872e4314ab0",
"org.opencontainers.image.base.name": "debian:trixie-slim",
"org.opencontainers.image.created": "2025-11-04T04:05:55Z",
"org.opencontainers.image.revision": "e4d5453581d9d3618f77c4aeccf2e6171a1cd6ff",
"org.opencontainers.image.source": "https://github.com/nginx/docker-nginx.git#e4d5453581d9d3618f77c4aeccf2e6171a1cd6ff:mainline/debian",
"org.opencontainers.image.url": "https://hub.docker.com/_/nginx",
"org.opencontainers.image.version": "1.29.3"
}
}
如下图:
|
上一篇:ASP.NET Core(三十三)文件输出下载(中文文件名)
|