Tudnivalók a nyilvántartásokról, adattárakról és összetevőkről

Ez a cikk bemutatja a tárolóregisztrációs adatbázisok, adattárak, tárolólemezképek és kapcsolódó összetevők alapvető fogalmait.

Registry, repositories, and artifacts

Beállításjegyzék

A tárolóregisztrációs adatbázis olyan szolgáltatás, amely tárolólemezképeket és kapcsolódó összetevőket tárol és terjeszt. A Docker Hub egy nyilvános tárolóregisztrációs adatbázis példája, amely a Docker-tárolólemezképek általános katalógusaként szolgál. Az Azure Container Registry közvetlen vezérlést biztosít a felhasználók számára a tárolótartalmak felett, integrált hitelesítéssel, a globális terjesztést és megbízhatóságot támogató georeplikációval a hálózatzárási üzemelő példányok esetében, a privát kapcsolattal rendelkező virtuális hálózati konfigurációval, a címkezárolással és sok más továbbfejlesztett funkcióval.

A Docker-kompatibilis tárolórendszerképek mellett az Azure Container Registry számos tartalomösszetevőt támogat, beleértve a Helm-diagramokat és az Open Container Initiative (OCI) rendszerképformátumokat.

Adattár

Az adattárak tárolólemezképek vagy más összetevők gyűjteményei egy beállításjegyzékben, amelyek azonos nevűek, de különböző címkéket tartalmaznak. A következő három kép például az acr-helloworld adattárban található:

  • acr-helloworld:legújabb
  • acr-helloworld:v1
  • acr-helloworld:v2

Az adattárnevek névtereket is tartalmazhatnak. A névterek lehetővé teszik a kapcsolódó adattárak és az összetevők tulajdonjogának azonosítását a szervezetben perjelekkel tagolt nevek használatával. A beállításjegyzék azonban az összes adattárat önállóan kezeli, nem hierarchiaként. Például:

  • marketing/campaign10-18/web:v2
  • marketing/campaign10-18/api:v3
  • marketing/campaign10-18/email-sender:v2
  • termékvisszaküldés/webbeküldés:20180604
  • product-returns/legacy-integrator:20180715

Az adattárnevek csak kisbetűs alfanumerikus karaktereket, pontokat, kötőjeleket, aláhúzásjeleket és perjeleket tartalmazhatnak.

Műtermék

A tárolólemezképek vagy a beállításjegyzékben található egyéb összetevők egy vagy több címkéhez vannak társítva, egy vagy több réteggel rendelkezik, és egy jegyzék azonosítja. Az összetevők egymáshoz való viszonyának megértése segíthet a beállításjegyzék hatékony kezelésében.

Címke

A rendszerkép vagy más összetevő címkéje határozza meg annak verzióját. Az adattárak egyetlen összetevőjéhez hozzárendelhet egy vagy több címkét, és "címkézetlen" is lehet. Vagyis törölheti az összes címkét egy képből, míg a rendszerkép adatai (rétegei) a beállításjegyzékben maradnak.

Az adattár (vagy adattár és névtér) és egy címke határozza meg a rendszerkép nevét. A rendszerképek leküldéséhez és lekéréséhez adja meg a nevét a leküldéses vagy lekéréses műveletben. A címke latest alapértelmezés szerint akkor használatos, ha nem ad meg egyet a Docker-parancsokban.

A tárolólemezképek címkézését a forgatókönyvek vezérlik a fejlesztésükhöz vagy üzembe helyezésükhöz. Például a stabil címkék használata ajánlott az alaprendszerképek karbantartásához, valamint egyedi címkék a rendszerképek üzembe helyezéséhez. További információt a tárolólemezképek címkézésével és verziószámozásával kapcsolatos Javaslatok talál.

A címkék elnevezési szabályairól a Docker dokumentációjában olvashat.

Réteg

A tárolólemezképek és -összetevők egy vagy több rétegből állnak. A különböző összetevőtípusok eltérően definiálják a rétegeket. Egy Docker-tároló lemezképében például minden réteg a Dockerfile egy sorának felel meg, amely meghatározza a képet:

Layers of a container image

A beállításjegyzék összetevői közös rétegeket használnak, így növelik a tárolási hatékonyságot. Előfordulhat például, hogy a különböző adattárak több lemezképe közös ASP.NET Core alapréteggel rendelkezik, de ennek a rétegnek csak egy példánya van tárolva a beállításjegyzékben. A rétegmegosztás emellett optimalizálja a csomópontok rétegeloszlását, és több összetevő közös rétegeket oszt meg. Ha egy csomóponton már megtalálható a ASP.NET Core réteg, akkor az ugyanazon rétegre hivatkozó másik rendszerkép későbbi lekérése nem továbbítja a réteget a csomópontnak. Ehelyett a csomóponton már meglévő rétegre hivatkozik.

A rétegkezelés biztonságos elkülönítése és védelme érdekében a rétegek nem osztódnak meg a regisztrációs adatbázisok között.

Jegyzék

A tárolóregisztrációs adatbázisba leküldött tárolórendszerképek vagy -összetevők egy jegyzékhez lesznek társítva. A beállításjegyzék által a tartalom leküldésekor létrehozott jegyzék egyedileg azonosítja az összetevőket, és meghatározza a rétegeket.

A Linux-rendszerképek hello-world alapjegyzéke 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"
    }
  ]
}

Egy adattár jegyzékadatait az Azure CLI-paranccsal listázhatja az acr manifest list-metadata paranccsal:

az acr manifest list-metadata --name <repositoryName> --registry <acrName>

Sorolja fel például az "acr-helloworld" adattár jegyzékeit:

az acr manifest list-metadata --name acr-helloworld --registry myregistry
[
  {
    "digest": "sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108",
    "tags": [
      "latest",
      "v3"
    ],
    "timestamp": "2018-07-12T15:52:00.2075864Z"
  },
  {
    "digest": "sha256:3168a21b98836dda7eb7a846b3d735286e09a32b0aa2401773da518e7eba3b57",
    "tags": [
      "v2"
    ],
    "timestamp": "2018-07-12T15:50:53.5372468Z"
  },
  {
    "digest": "sha256:7ca0e0ae50c95155dbb0e380f37d7471e98d2232ed9e31eece9f9fb9078f2728",
    "tags": [
      "v1"
    ],
    "timestamp": "2018-07-11T21:38:35.9170967Z"
  }
]

Jegyzék-kivonat

A jegyzékeket egyedi SHA-256 kivonat vagy jegyzékkivonat azonosítja. Az egyes képeket vagy összetevőket – akár címkézettek, akár nem – a kivonat azonosítja. A kivonatolás értéke akkor is egyedi, ha az összetevő rétegadatai megegyeznek egy másik összetevőéval. Ez a mechanizmus teszi lehetővé az azonos címkével ellátott képek ismételt leküldését egy beállításjegyzékbe. Előfordulhat például, hogy hiba nélkül többször is leküldi myimage:latest a beállításjegyzékbe, mert az egyes rendszerképeket egyedi kivonata azonosítja.

Lekérhet egy összetevőt egy beállításjegyzékből a lekéréses műveletben megadott kivonat megadásával. Előfordulhat, hogy egyes rendszerek úgy vannak konfigurálva, hogy kivonatolással lekérjenek, mert ez garantálja a rendszerkép lekérését, még akkor is, ha egy azonos címkével ellátott rendszerképet később leküld a beállításjegyzékbe.

Fontos

Ha ismétlődően leküldi a módosított összetevőket azonos címkékkel, akkor "árvákat" hozhat létre – olyan összetevőket, amelyek címkézetlenek, de továbbra is helyet foglalnak a beállításjegyzékben. A címkézetlen képek nem jelennek meg az Azure CLI-ben vagy az Azure Portalon, amikor címkével listáz vagy tekint meg képeket. A rétegeik azonban továbbra is léteznek, és helyet foglalnak el a beállításjegyzékben. A nem megjelölt képek törlése felszabadítja a beállításjegyzék területét, ha a jegyzékfájl az egyetlen, vagy az utolsó, amely egy adott rétegre mutat. A nem megjelölt rendszerképek által használt terület felszabadításáról további információt a tárolórendszerképek törlése az Azure Container Registryben című témakörben talál.

Összetevő kezelése

A leküldéses és lekéréses műveletek beállításjegyzék-összetevőjének Dockerrel vagy más ügyféleszközökkel való kezeléséhez kombinálja a teljes beállításjegyzéknevet, az adattár nevét (ha van, a névtér elérési útját is beleértve), valamint egy összetevőcímkét vagy jegyzékkivonatot. A kifejezések magyarázatát az előző szakaszokban találja.

Cím címke szerint: [loginServerUrl]/[repository][:tag]

Cím kivonat alapján: [loginServerUrl]/[repository@sha256][:digest]

Amikor a Docker vagy más ügyféleszközök használatával lekéri vagy leküldi az összetevőket egy Azure-tárolóregisztrációs adatbázisba, használja a regisztrációs adatbázis teljes URL-címét, más néven a bejelentkezési kiszolgáló nevét. Az Azure-felhőben az Azure-tárolóregisztrációs adatbázis teljes URL-címe formátuma myregistry.azurecr.io (mind kisbetűs).

Megjegyzés:

  • A beállításjegyzék bejelentkezési kiszolgálóJÁNAK URL-címében nem adható meg portszám, például myregistry.azurecr.io:443.
  • A címke latest alapértelmezés szerint akkor használatos, ha nem ad meg címkét a parancsban.

Leküldés címke szerint

Examples:

docker push myregistry.azurecr.io/samples/myimage:20210106

docker push myregistry.azurecr.io/marketing/email-sender

Lekérés címke szerint

Példa:

docker pull myregistry.azurecr.io/marketing/campaign10-18/email-sender:v2

Lekérés jegyzékkivonat szerint

Példa:

docker pull myregistry.azurecr.io/acr-helloworld@sha256:0a2e01852872580b2c2fea9380ff8d7b637d3928783c55beb3f21a6e58d5d108

További lépések

További információ a beállításjegyzék-tárolókról és a támogatott tartalomformátumokról az Azure Container Registryben.

Megtudhatja, hogyan küldhet le és kér le képeket az Azure Container Registryből.