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.
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:
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.