Acest articol este un articol oglindă al traducerii automate, vă rugăm să faceți clic aici pentru a sări la articolul original.

Vedere: 184|Răspunde: 0

Imagini Docker: diferența dintre Manifest digest și Index digest

[Copiază linkul]
Postat pe 2025-11-13 10:56:32 | | | |
Manifest Digest

Se referă la identificatorul unic al manifestului unei platforme specifice (de exemplu, linux/amd64).
Este un hash al conținutului acelui fișier manifest (de obicei SHA-256) în formatul: SHA256:...
Fiecare manifest descrie un strat specific, un blob de configurare și metadatele de rulare.
Dacă extragi o imagine a unei singure arhitecturi (de exemplu, doar amd64 este suportat), atunci operezi un manifest digest.

Index Digest

Se referă la un rezumat al unui index oglindă (listă manifestă sau index OCI).
Este folosit pentru a suporta imagini multi-arhitectură, care nu conțin direct stratul imaginii, dar listează digest-uri manifeste corespunzătoare mai multor platforme diferite.
Este echivalent cu o "listă de pointeri" care îi spune clientului: "Dacă ești arm64, folosește acest digest; Dacă ești amd64, folosește acel digest".
Întâlnit frecvent în imagini multi-platformă construite și distribuite folosind Docker Buildx.

Index vs Manifest

  • Index Digest: Ca un cuprins al unei cărți multilingve, îți spune care capitol este în chineză și care capitol este în engleză.
  • Manifest Digest: Capitole specifice într-o versiune lingvistică care pot fi citite direct.

Așa cum se arată mai jos:



Testul imaginii Nginx

În primul rând, asigură-te că rețeaua este accesibilă:https://registry-1.docker.io/v2/, așa cum se arată în figura de mai jos:



Adresă:Autentificarea cu hyperlink este vizibilă.

Comandă vizualizare digest index:
Rezultatul este următorul:
{
   "schemaVersion": 2,
   "mediaType": "application/vnd.oci.image.index.v1+json",
   "manifestă": [
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 2290,
         "digest": "sha256:bd1578eec775d0b28fd7f664b182b7e1fb75f1dd09f92d865dababe8525dfe8b",
         "platformă": {
            "Arhitectură": "AMD64",
            "OS": "Linux"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 841,
         "digest": "sha256:0c798fdea148c2a4aa684526de6dc2baeed661e364ac2ef3f2ef7693fb1c1029",
         "platformă": {
            "arhitectură": "necunoscut",
            "OS": "necunoscut"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 2292,
         "digest": "sha256:5dd53c4c2197dda60eec710dee3496b37b5474545e770bf7ba5841390edbae2",
         "platformă": {
            "arhitectură": "braț",
            "OS": "Linux",
            "variantă": "v5"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 841,
         "digest": "sha256:4b2afec60ddfb19ec75f5fb15a055a9b2671b7a344c48815b43098dd5b1b1bfed8",
         "platformă": {
            "arhitectură": "necunoscut",
            "OS": "necunoscut"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 2292,
         "digest": "sha256:e7b13d0becb2bfe336926aeb4f762DEBC2a3ba0eCE7b2d48910fe5c94667aa9b",
         "platformă": {
            "arhitectură": "braț",
            "OS": "Linux",
            "variantă": "v7"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 841,
         "digest": "sha256:e43007b688de2eab645b9c679cac0aadcab6f5658077cc218c75d7f3b81dfff3",
         "platformă": {
            "arhitectură": "necunoscut",
            "OS": "necunoscut"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 2292,
         "digest": "sha256:63a931a2f5772f57ed7537f19330ee231c0550d1fbb95ee24d0e0e3e849bae33",
         "platformă": {
            "arhitectură": "arm64",
            "OS": "Linux",
            "variantă": "v8"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 841,
         "digest": "sha256:36198c74d4f6dc69c85e84e08bd575423cb2b8734036e0c13d13d0ef8c575d42",
         "platformă": {
            "arhitectură": "necunoscut",
            "OS": "necunoscut"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 2289,
         "digest": "sha256:ac27e318cff1c5340d9a2c2d8db5f0a374dabfe1f285f81348008e01bd980d4d",
         "platformă": {
            "arhitectură": "386",
            "OS": "Linux"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 841,
         "digest": "sha256:dcb4b9a4f4b0547645addbc05a7c6a9fbed5c06bc68521875cdc6be518a4afa0",
         "platformă": {
            "arhitectură": "necunoscut",
            "OS": "necunoscut"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 2292,
         "digest": "sha256:9e20a218b4054bee7c688bb34c86de076f4fc8c85d51fa93a567dd62bb7225d",
         "platformă": {
            "arhitectură": "ppc64le",
            "OS": "Linux"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 841,
         "digest": "sha256:bf59f6482ee5ca10fa33ffb269872719ae1b536bfe24cee02e2c4e0959b048e5",
         "platformă": {
            "arhitectură": "necunoscut",
            "OS": "necunoscut"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 2292,
         "digest": "sha256:61da52d2a49c2e8db79132503f5e40796c13644843e9fbf5f9858fe415517936",
         "platformă": {
            "arhitectură": "riscv64",
            "OS": "Linux"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 841,
         "digest": "sha256:649388a8bee7af8b33030867a0e2f7245065a8ee0bf7bd30e83b9f64fe27208a",
         "platformă": {
            "arhitectură": "necunoscut",
            "OS": "necunoscut"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 2290,
         "digest": "sha256:80d64129dd9588ab5e1969cb58e46e90b9f3944408e3f4811c3a18958da7e941",
         "platformă": {
            "arhitectură": "s390x",
            "OS": "Linux"
         }
      },
      {
         "mediaType": "application/vnd.oci.image.manifest.v1+json",
         "mărime": 841,
         "digest": "Sha256:0b43F48991de9b554893968d8e0b6fcd5a2aa82b36d98b91246eadcaeeead97",
         "platformă": {
            "arhitectură": "necunoscut",
            "OS": "necunoscut"
         }
      }
   ]
}

Manifestează digestul pentru a vizualiza comenzile:
Rezultatul este următorul:
{
        "schemaVersion": 2,
        "mediaType": "application/vnd.oci.image.manifest.v1+json",
        "config": {
                "mediaType": "application/vnd.oci.image.config.v1+json",
                "digest": "sha256:d261fd19cb63238535ab80d4e1be1d9e7f6c8b5a28a820188968dd3e6f06072d",
                "mărime": 8748
        },
        "straturi": [
                {
                        "mediaType": "aplicație/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:d7ecded7702a5dbf6d0f79a71edc34b534d08f3051980e2c948fba72db3197fc",
                        "mărime": 29778104
                },
                {
                        "mediaType": "aplicație/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:266626526d42cf7fe5f56b933db3f4c59c0596b7e2c3a556ba5ec4981daf3e9d",
                        "mărime": 29970043
                },
                {
                        "mediaType": "aplicație/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:320b0949be89766f7c6a8746f1971021a8e8c84928af00454c0f9c6e38ebf54c",
                        "mărime": 628
                },
                {
                        "mediaType": "aplicație/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:d921c57c6a81addac6ca451906699ca6ee8c01fd708805a928181c5370b0a30c",
                        "mărime": 956
                },
                {
                        "mediaType": "aplicație/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:9def903993e4ef9a3faa02bb893b0382768a4d466d51247bff1ea80b119377a1",
                        "mărime": 404
                },
                {
                        "mediaType": "aplicație/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "Sha256:52bc359bcbd74bb3d11b94cf3c6d94bcf9bd2d3e450483fb978124ceddb9ca57",
                        "mărime": 1210
                },
                {
                        "mediaType": "aplicație/vnd.oci.image.layer.v1.tar+gzip",
                        "digest": "sha256:e2f8e296d9df1dd5e2ddc81e5e758f9762fdb932e982ac6873e36692c3e3e3c983",
                        "mărime": 1398
                }
        ],
        "adnotări": {
                "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"
        }
}

Așa cum se arată mai jos:





Precedent:ASP.NET Descărcare de ieșire a fișierului Core (33) (nume de fișier chinezesc)
Următor:Nginx folosește Gzip pentru a optimiza performanța site-ului (tuning)
Disclaimer:
Tot software-ul, materialele de programare sau articolele publicate de Code Farmer Network sunt destinate exclusiv scopurilor de învățare și cercetare; Conținutul de mai sus nu va fi folosit în scopuri comerciale sau ilegale, altfel utilizatorii vor suporta toate consecințele. Informațiile de pe acest site provin de pe Internet, iar disputele privind drepturile de autor nu au legătură cu acest site. Trebuie să ștergi complet conținutul de mai sus de pe calculatorul tău în termen de 24 de ore de la descărcare. Dacă îți place programul, te rugăm să susții software-ul autentic, să cumperi înregistrarea și să primești servicii autentice mai bune. Dacă există vreo încălcare, vă rugăm să ne contactați prin e-mail.

Mail To:help@itsvse.com