Este artículo es un artículo espejo de traducción automática, por favor haga clic aquí para saltar al artículo original.

Vista: 184|Respuesta: 0

Imágenes Docker: la diferencia entre el digest de Manifest y el digest de Index

[Copiar enlace]
Publicado el 13-11-2025 a las 10:56:32 | | | |
Manifest Digest

Se refiere al identificador único del manifiesto de una plataforma específica (por ejemplo, linux/amd64).
Es un hash del contenido de ese archivo manifiesto (normalmente SHA-256) en el formato: SHA256:...
Cada manifiesto describe una capa específica, un blob de configuración y metadatos en tiempo de ejecución.
Si extraes una imagen de una sola arquitectura (por ejemplo, solo se soporta amd64), entonces estás operando un resumen manifiesto.

Index Digest

Se refiere a un resumen de un índice espejo (lista de manifiestos o índice OCI).
Se utiliza para soportar imágenes multiarquitectura, que no contienen directamente la capa de imagen, sino que listan los digestos de manifiestos correspondientes a múltiples plataformas diferentes.
Es equivalente a una "lista de punteros" que le dice al cliente: "Si eres arm64, usa este digest; Si eres amd64, usa ese digest".
Comúnmente se encuentra en imágenes multiplataforma construidas y publicadas usando Docker Buildx.

Índice vs Manifiesto

  • Índice Digest: Como el índice de un libro multilingüe, te indica qué capítulo está en chino y cuál en inglés.
  • Resumen de manifiesto: capítulos específicos en una versión lingüística que se pueden leer directamente.

Como se muestra a continuación:



Prueba de imagen Nginx

Primero, asegúrate de que la red sea accesible:https://registry-1.docker.io/v2/, como se muestra en la figura siguiente:



Dirección:El inicio de sesión del hipervínculo es visible.

Comando de vista resumen del índice:
La salida es la siguiente:
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.oci.image.index.v1+json",
   "manifiesta": [
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 2290,
         "digest": "sha256:bd1578eec775d0b28fd7f664b182b7e1fb75f1dd09f92d865dababe8525dfe8b",
         "plataforma": {
            "Arquitectura": "AMD64",
            "OS": "Linux"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 841,
         "digest": "Sha256:0c798fdea148c2a4aa684526de6dc2baeed661e364ac2ef3f2ef7693fb1c1029",
         "plataforma": {
            "arquitectura": "desconocido",
            "OS": "Desconocido"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 2292,
         "digest": "sha256:5dd53c4c2197dda60eec710dee3496b37b54745745e770bf7ba5841390edbae2",
         "plataforma": {
            "arquitectura": "brazo",
            "OS": "Linux",
            "variante": "v5"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 841,
         "digest": "sha256:4b2afec60ddfb19ec75f5fb15a055a9b2671b7a344c48815b43098dd5b1b1bfed8",
         "plataforma": {
            "arquitectura": "desconocido",
            "OS": "Desconocido"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 2292,
         "digest": "sha256:e7b13d0becb2bfe336926aeb4f762DEBC2a3ba0ece7b2d48910fe5c94667aa9b",
         "plataforma": {
            "arquitectura": "brazo",
            "OS": "Linux",
            "variante": "v7"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 841,
         "digest": "sha256:e43007b688de2eAB645b9c679CAC0aadcab6f5658077cc218c75d7f3b81dfff3",
         "plataforma": {
            "arquitectura": "desconocido",
            "OS": "Desconocido"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 2292,
         "digest": "sha256:63a931a2f5772f57ed7537f19330ee231c0550d1fbb95ee24d0e0e3e849bae33",
         "plataforma": {
            "arquitectura": "arm64",
            "OS": "Linux",
            "variante": "V8"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 841,
         "digest": "sha256:36198c74d4f6dc69c85e84e08bd575423cb2b8734036e0c13d13d0ef8c575d42",
         "plataforma": {
            "arquitectura": "desconocido",
            "OS": "Desconocido"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 2289,
         "digest": "sha256:ac27e318cff1c5340d9a2c2d8db5f0a374dabfe1f285f81348008e01bd980d4d",
         "plataforma": {
            "arquitectura": "386",
            "OS": "Linux"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 841,
         "digest": "sha256:dcb4b9a4f4b0547645addbc05a7c6a9fbed5c06bc68521875cdc6be518a4afa0",
         "plataforma": {
            "arquitectura": "desconocido",
            "OS": "Desconocido"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 2292,
         "digest": "sha256:9e20a218b4054bee7c688bb34c86de076f4fc8c85d51fa93a567dd62bb7225d",
         "plataforma": {
            "Arquitectura": "PPC64LE",
            "OS": "Linux"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 841,
         "digest": "sha256:bf59f6482ee5ca10fa33ffb269872719ae1b536bfe24cee02e2c4e0959b048e5",
         "plataforma": {
            "arquitectura": "desconocido",
            "OS": "Desconocido"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 2292,
         "digest": "sha256:61da52d2a49c2e8db79132503f5e40796c13644843e9fbf5f9858fe415517936",
         "plataforma": {
            "arquitectura": "RISCV64",
            "OS": "Linux"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 841,
         "digest": "sha256:649388a8bee7af8b330867a0e2f7245065a8e0bf7bd30e83b9f64fe27208a",
         "plataforma": {
            "arquitectura": "desconocido",
            "OS": "Desconocido"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 2290,
         "digest": "sha256:80d64129dd9588ab5e1969cb58e46e90b9f3944408e3f4811c3a18958da7e941",
         "plataforma": {
            "Arquitectura": "S390X",
            "OS": "Linux"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "tamaño": 841,
         "digest": "Sha256:0b43F48991de9b554893968d8e0b6fcd5a2aaa82b36d98b91246eadcaeeead97",
         "plataforma": {
            "arquitectura": "desconocido",
            "OS": "Desconocido"
         }
      }
   ]
}

Resume el manifiesto para ver comandos:
La salida es la siguiente:
{
        "schemaVersion": 2,
        "mediaType": "application/vnd.oci.image.manifest.v1+json",
        "config": {
                "mediaType": "application/vnd.oci.image.config.v1+json",
                "digest": "sha256:d261fd19cb63238535ab80d4e1be1d9e7f6c8b5a28a820188968dd3e6f06072d",
                "tamaño": 8748
        },
        "capas": [
                {
                        "mediaType": "aplicación/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "Sha256:d7ecded7702a5dbf6d0f79a71edc34b534d08f3051980e2c948fba72db3197fc",
                        "tamaño": 29778104
                },
                {
                        "mediaType": "aplicación/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:266626526d42cf7fe5f56b933db3f4c59c0596b7e2c3a556ba5ec4981daf3e9d",
                        "tamaño": 29970043
                },
                {
                        "mediaType": "aplicación/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:320b0949be89766f7c6a8746f1971021a8e8c84928af00454c0f9c6e38ebf54c",
                        "tamaño": 628
                },
                {
                        "mediaType": "aplicación/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:d921c57c6a81addac6ca451906699ca6ee8c01fd708805a928181c5370b0a30c",
                        "tamaño": 956
                },
                {
                        "mediaType": "aplicación/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:9def903993e4ef9a3faa02bb893b0382768a4d466d51247bff1ea80b119377a1",
                        "tamaño": 404
                },
                {
                        "mediaType": "aplicación/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "Sha256:52BC359bcbd74bb3d11b94CF3C6d94bCF9BD2d3E450483fb978124Ceddb9Ca57",
                        "tamaño": 1210
                },
                {
                        "mediaType": "aplicación/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:e2f8e296d9df1dd5e2ddc81e5e758f9762fdb932e982ac6873e36692c3e3e3c983",
                        "tamaño": 1398
                }
        ],
        "anotaciones": {
                "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"
        }
}

Como se muestra a continuación:





Anterior:ASP.NET Descarga de salida de archivo Core (33) (nombre de archivo en chino)
Próximo:Nginx utiliza Gzip para optimizar el rendimiento del sitio web (ajuste)
Renuncia:
Todo el software, materiales de programación o artículos publicados por Code Farmer Network son únicamente para fines de aprendizaje e investigación; El contenido anterior no se utilizará con fines comerciales o ilegales; de lo contrario, los usuarios asumirán todas las consecuencias. La información de este sitio proviene de Internet, y las disputas de derechos de autor no tienen nada que ver con este sitio. Debes eliminar completamente el contenido anterior de tu ordenador en un plazo de 24 horas desde la descarga. Si te gusta el programa, por favor apoya el software genuino, compra el registro y obtén mejores servicios genuinos. Si hay alguna infracción, por favor contáctanos por correo electrónico.

Mail To:help@itsvse.com