Share via


Többarchitektúra-rendszerképek az Azure Container Registryben

Ez a cikk bemutatja a több architektúra (többíves) rendszerképeket, valamint azt, hogyan használhatja Azure Container Registry funkciókat a létrehozásukhoz, tárolásához és használatához.

A többíves rendszerképek olyan tárolólemezképek, amelyek különböző architektúrákhoz és néha különböző operációs rendszerekhez is kombinálhatják a változatokat. Ha többarchitektúra-támogatással rendelkező lemezképet futtat, a tárolóügyfelek automatikusan kiválasztanak egy olyan rendszerképvariánst, amely megfelel az operációs rendszernek és az architektúrának.

Jegyzékfájlok és jegyzéklisták

A többíves képek képjegyzékeken és jegyzéklistákon alapulnak.

Jegyzék

Minden tárolórendszerképet egy jegyzékfájl jelöl. A jegyzékfájl egy JSON-fájl, amely egyedileg azonosítja a képet, hivatkozva a rétegekre és a hozzájuk tartozó méretekre.

A Linux-rendszerképek hello-world alapszintű jegyzékfájlja az alábbihoz hasonlóan néz ki:

{
  "schemaVersion": 2,
  "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
  "config": {
      "mediaType": "application/vnd.docker.container.image.v1+json",
      "size": 1510,
      "digest": "sha256:fbf289e99eb9bca977dae136fbe2a82b6b7d4c372474c9235adc1741675f587e"
    },
  "layers": [
      {
        "mediaType": "application/vnd.docker.image.rootfs.diff.tar.gzip",
        "size": 977,
        "digest": "sha256:2c930d010525941c1d56ec53b97bd057a67ae1865eebf042686d2a2d18271ced"
      }
    ]
}

A jegyzékfájlokat megtekintheti Azure Container Registry az Azure CLI Azure Portal vagy eszközeivel, például az az acr manifest list-metadata paranccsal.

Jegyzéklista

A többíves rendszerképek jegyzéklistája (más néven az OCI-képek képindexe ) képek gyűjteménye (indexe), és egy vagy több képnév megadásával hozhat létre egyet. Részletes információkat tartalmaz az egyes rendszerképekről, például a támogatott operációs rendszerről és architektúráról, a méretről és a jegyzék-kivonatról. A jegyzéklista ugyanúgy használható, mint a képek neve a és docker run parancsokbandocker pull.

A docker parancssori felület a docker jegyzékfájl-parancsával kezeli a jegyzékfájlokat és a jegyzéklistákat.

Megjegyzés

A parancs és az docker manifest alparancsok jelenleg kísérleti jellegűek. A kísérleti parancsok használatával kapcsolatos részletekért tekintse meg a Docker dokumentációját.

A jegyzéklistát a docker manifest inspect paranccsal tekintheti meg. A következő a többíves rendszerkép mcr.microsoft.com/mcr/hello-world:latestkimenete, amely három jegyzékfájlból áll: kettő Linux operációsrendszer-architektúrákhoz és egy Windows-architektúrához.

{
  "schemaVersion": 2,
  "mediaType": "application/vnd.docker.distribution.manifest.list.v2+json",
  "manifests": [
    {
      "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
      "size": 524,
      "digest": "sha256:83c7f9c92844bbbb5d0a101b22f7c2a7949e40f8ea90c8b3bc396879d95e899a",
      "platform": {
        "architecture": "amd64",
        "os": "linux"
      }
    },
    {
      "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
      "size": 525,
      "digest": "sha256:873612c5503f3f1674f315c67089dee577d8cc6afc18565e0b4183ae355fb343",
      "platform": {
        "architecture": "arm64",
        "os": "linux"
      }
    },
    {
      "mediaType": "application/vnd.docker.distribution.manifest.v2+json",
      "size": 1124,
      "digest": "sha256:b791ad98d505abb8c9618868fc43c74aa94d08f1d7afe37d19647c0030905cae",
      "platform": {
        "architecture": "amd64",
        "os": "windows",
        "os.version": "10.0.17763.1697"
      }
    }
  ]
}

Ha egy többíves jegyzéklistát Azure Container Registry tárol, a jegyzéklistát a Azure Portal vagy olyan eszközökkel is megtekintheti, mint az az acr manifest list-metadata parancs.

Többíves rendszerkép importálása

A meglévő többíves rendszerképek az az acr import paranccsal importálhatók az Azure Container Registrybe. A képimportálás szintaxisa megegyezik az egyarchitektúrás rendszerképek szintaxisával. Az egyarchitektúrás rendszerképek importálásához hasonlóan a többíves rendszerképek importálása nem használ Docker-parancsokat.

Részletekért lásd: Tárolórendszerképek importálása tárolóregisztrációs adatbázisba.

Többíves rendszerkép leküldése

Ha különböző architektúrákhoz hoz létre tárolórendszerképeket buildelési munkafolyamatokkal, kövesse az alábbi lépéseket egy többíves rendszerkép azure-tárolóregisztrációs adatbázisba való leküldéséhez.

  1. Az egyes architektúraspecifikus rendszerképek címkézése és leküldése a tárolóregisztrációs adatbázisba. Az alábbi példa két Linux-architektúrát feltételez: arm64 és amd64.

    docker tag myimage:arm64 \
      myregistry.azurecr.io/multi-arch-samples/myimage:arm64
    
    docker push myregistry.azurecr.io/multi-arch-samples/myimage:arm64
    
    docker tag myimage:amd64 \
      myregistry.azurecr.io/multi-arch-samples/myimage:amd64
    
    docker push myregistry.azurecr.io/multi-arch-samples/myimage:amd64
    
  2. Futtassa a parancsot docker manifest create egy jegyzéklista létrehozásához, amely az előző képeket többíves rendszerképekké egyesíti.

    docker manifest create myregistry.azurecr.io/multi-arch-samples/myimage:multi \
     myregistry.azurecr.io/multi-arch-samples/myimage:arm64 \
     myregistry.azurecr.io/multi-arch-samples/myimage:amd64
    
  3. Küldje le a jegyzékfájlt a tárolóregisztrációs adatbázisba a használatával docker manifest push:

    docker manifest push myregistry.azurecr.io/multi-arch-samples/myimage:multi
    
  4. A jegyzéklista megtekintéséhez használja a docker manifest inspect parancsot. Egy példa a parancs kimenetére az előző szakaszban látható.

Miután leküldte a többíves jegyzékfájlt a beállításjegyzékbe, ugyanúgy használja a többíves rendszerképet, mint az egyarchitektúrás rendszerképet. Kérje le például a rendszerképet a paranccsal docker pull, és használja az az acr repository parancsokat a kép címkéinek, jegyzékfájljainak és egyéb tulajdonságainak megtekintéséhez.

Többíves rendszerkép létrehozása és leküldése

Az ACR Tasks funkcióival létrehozhat és leküldhet egy többíves rendszerképet az Azure Container Registrybe. Definiáljon például egy többlépéses feladatot egy YAML-fájlban , amely linuxos többíves rendszerképet hoz létre.

Az alábbi példa feltételezi, hogy két architektúra , az arm64 és az amd64 különálló Docker-fájlokkal rendelkezik. Létrehozza és leküldi az architektúraspecifikus lemezképeket, majd létrehoz és leküld egy többíves jegyzékfájlt, amely a latest következő címkével rendelkezik:

version: v1.1.0

steps:
- build: -t {{.Run.Registry}}/multi-arch-samples/myimage:{{.Run.ID}}-amd64 -f dockerfile.arm64 . 
- build: -t {{.Run.Registry}}/multi-arch-samples/myyimage:{{.Run.ID}}-arm64 -f dockerfile.amd64 . 
- push: 
    - {{.Run.Registry}}/multi-arch-samples/myimage:{{.Run.ID}}-arm64
    - {{.Run.Registry}}/multi-arch-samples/myimage:{{.Run.ID}}-amd64
- cmd: >
    docker manifest create
    {{.Run.Registry}}/multi-arch-samples/myimage:latest
    {{.Run.Registry}}/multi-arch-samples/myimage:{{.Run.ID}}-arm64
    {{.Run.Registry}}/multi-arch-samples/myimage:{{.Run.ID}}-amd64
- cmd: docker manifest push --purge {{.Run.Registry}}/multi-arch-samples/myimage:latest
- cmd: docker manifest inspect {{.Run.Registry}}/multi-arch-samples/myimage:latest

Következő lépések

  • Az Azure Pipelines használatával tárolórendszerképeket hozhat létre különböző architektúrákhoz.
  • Ismerje meg, hogyan hozhat létre többplatformos rendszerképeket a docker buildx beépülő modullal.