OCI-összetevők leküldése és lekérése azure-tárolóregisztrációs adatbázis használatával

Az Azure-tárolóregisztrációs adatbázissal tárolhatja és kezelheti az Open Container Initiative (OCI) összetevőket, valamint a Docker- és OCI-tárolólemezképeket.

Ennek a funkciónak a bemutatásához ez a cikk bemutatja, hogyan használható az OCI Registry tárolóregisztrációs (ORAS) parancssori felületére egy mintaösszetevő – egy szövegfájl – leküldése egy Azure-tárolóregisztrációs adatbázisba. Ezután kérje le az összetevőt a beállításjegyzékből. Egy Azure-tárolóregisztrációs adatbázisban különböző OCI-összetevőket kezelhet az egyes összetevőknek megfelelő különböző parancssori eszközökkel.

Előfeltételek

  • Azure Container Registry – Létrehozhat egy tároló-beállításjegyzéket Azure-előfizetésében. Használhatja például az Azure Portalt vagy az az acr createot.
  • Azure CLI – Verzió 2.29.1 vagy újabb verzió szükséges. A telepítéssel és/vagy frissítéssel kapcsolatban lásd az Azure CLI telepítését és/vagy frissítését.
  • ORAS CLI – Verzióra v0.16.0 van szükség. Lásd: ORAS telepítés.
  • Docker (nem kötelező) – Bár a Docker Desktop nem kötelező, a parancssori felület a oras Docker asztali hitelesítőadat-tárolóját használja a hitelesítő adatok tárolásához. Ha a Docker Desktop telepítve van, akkor a következőhöz kell futnia oras login: .

Beállításjegyzék konfigurálása

Konfiguráljon környezeti változókat a parancsok egyszerű másolásához/beillesztéséhez a rendszerhéjba. A parancsok helyileg vagy az Azure Cloud Shellben is futtathatók.

ACR_NAME=myregistry
REGISTRY=$ACR_NAME.azurecr.io

Bejelentkezés egy beállításjegyzékbe

Hitelesítés egyéni Microsoft Entra-identitással egy AD-jogkivonat használatával. Mindig használja a "000..." értéket, USER_NAME mivel a jogkivonatot a PASSWORD változó elemzi.

# Login to Azure
az login

# Login to ACR, using a token based on your Azure identity
USER_NAME="00000000-0000-0000-0000-000000000000"
PASSWORD=$(az acr login --name $ACR_NAME --expose-token --output tsv --query accessToken)

Megjegyzés:

Az ACR és az ORAS több hitelesítési lehetőséget is támogat a felhasználók és a rendszerautomatizálás számára. Ez a cikk egyéni identitást használ egy Azure-jogkivonat használatával. További hitelesítési lehetőségekért lásd: Hitelesítés Azure-tárolóregisztrációs adatbázissal

Bejelentkezés AZ ORAS használatával

Adja meg a hitelesítő adatokat.oras login

oras login $REGISTRY \
  --username $USER_NAME \
  --password $PASSWORD

Gyökérösszetevő leküldése

A gyökérösszetevő olyan összetevő, amelynek nincs subject szülője. A gyökérösszetevők bármi lehetnek egy tárolórendszerképből, egy helm-diagramból, egy adattár olvasófájljából. A csatolási, leküldési és lekéréses ellátási lánc összetevői olyan összetevők, amelyek egy másik összetevőre hivatkoznak. A referencia-összetevők lehetnek bármik az aláírásból, a szoftveres anyagjegyzékből, a vizsgálati jelentésből vagy más változó típusokból.

Ebben a példában hozzon létre egy markdown-fájlt képviselő tartalmat:

echo 'Readme Content' > readme.md

A következő lépés leküldi a fájlt a readme.md fájlba <myregistry>.azurecr.io/samples/artifact:readme.

  • A beállításjegyzéket a rendszer a teljes beállításjegyzéknévvel <myregistry>.azurecr.io azonosítja (az összes kisbetűvel), majd a névtér és az adattár: /samples/artifact.
  • Az összetevő fel van címkézve :readme, hogy egyedileg azonosítsa az adattárban (:latest, :v1, :v1.0.1) felsorolt egyéb összetevőkből.
  • A beállítás --artifact-type readme/example megkülönbözteti az összetevőt egy tárolórendszerképtől, amely a .application/vnd.oci.image.config.v1+json
  • Az ./readme.md azonosító azonosítja a feltöltött fájlt, és a :application/markdown fájl IANA-ját mediaType jelöli.
    További információkért tekintse meg az OCI-összetevők szerzőinek útmutatóját.

oras push A parancs használatával leküldheti a fájlt a beállításjegyzékbe.

Linux, WSL2 vagy macOS

oras push $REGISTRY/samples/artifact:readme \
    --artifact-type readme/example \
    ./readme.md:application/markdown

Windows

.\oras.exe push $REGISTRY/samples/artifact:readme ^
    --artifact-type readme/example ^
    .\readme.md:application/markdown

A sikeres leküldés kimenete a következő kimenethez hasonló:

Uploading 2fdeac43552b readme.md
Uploaded  2fdeac43552b readme.md
Pushed <myregistry>.azurecr.io/samples/artifact:readme
Digest: sha256:e2d60d1b171f08bd10e2ed171d56092e39c7bac1aec5d9dcf7748dd702682d53

Többfájlos gyökérösszetevő leküldése

Ha az OCI-összetevők le lesznek küldve egy beállításjegyzékbe az ORAS használatával, a rendszer minden fájlhivatkozást blobként küld le. Ha külön blobokat szeretne leküldni, hivatkozzon a fájlokra egyenként, vagy a fájlok gyűjteményére egy könyvtárra hivatkozva.
További információ a fájlok gyűjteményének leküldéséről: Összetevők leküldése több fájllal

Hozzon létre néhány dokumentációt az adattárhoz:

echo 'Readme Content' > readme.md
mkdir details/
echo 'Detailed Content' > details/readme-details.md
echo 'More detailed Content' > details/readme-more-details.md

A többfájlos összetevő leküldése:

Linux, WSL2 vagy macOS

oras push $REGISTRY/samples/artifact:readme \
    --artifact-type readme/example\
    ./readme.md:application/markdown\
    ./details

Windows

.\oras.exe push $REGISTRY/samples/artifact:readme ^
    --artifact-type readme/example ^
    .\readme.md:application/markdown ^
    .\details

A jegyzék felderítése

Az eredményként oras pushlétrehozott jegyzék megtekintéséhez használja a következőt oras manifest fetch:

oras manifest fetch --pretty $REGISTRY/samples/artifact:readme

A kimenet a következőhöz hasonló lesz:

{
  "mediaType": "application/vnd.oci.artifact.manifest.v1+json",
  "artifactType": "readme/example",
  "blobs": [
    {
      "mediaType": "application/markdown",
      "digest": "sha256:2fdeac43552b71eb9db534137714c7bad86b53a93c56ca96d4850c9b41b777fc",
      "size": 15,
      "annotations": {
        "org.opencontainers.image.title": "readme.md"
      }
    },
    {
      "mediaType": "application/vnd.oci.image.layer.v1.tar+gzip",
      "digest": "sha256:0d6c7434a34f6854f971487621426332e6c0fda08040b9e6cc8a93f354cee0b1",
      "size": 189,
      "annotations": {
        "io.deis.oras.content.digest": "sha256:11eceb2e7ac3183ec9109003a7389468ec73ad5ceaec0c4edad0c1b664c5593a",
        "io.deis.oras.content.unpack": "true",
        "org.opencontainers.image.title": "details"
      }
    }
  ],
  "annotations": {
    "org.opencontainers.artifact.created": "2023-01-10T14:44:06Z"
  }
}

Gyökérösszetevő lekérése

Tiszta könyvtár létrehozása letöltéshez

mkdir ./download

Futtassa a parancsot az oras pull összetevő lekéréséhez a beállításjegyzékből.

oras pull -o ./download $REGISTRY/samples/artifact:readme

A lekért fájlok megtekintése

tree ./download

Az összetevő eltávolítása (nem kötelező)

Ha el szeretné távolítani az összetevőt a beállításjegyzékből, használja a oras manifest delete parancsot.

 oras manifest delete $REGISTRY/samples/artifact:readme

Következő lépések

  • Ismerje meg az Artifact-referenciákat, az aláírások társítását, az anyagjegyzéket és más referenciatípusokat
  • További információ az ORAS-projektről, beleértve az összetevők jegyzékfájljának konfigurálását
  • Az új összetevőtípusokra vonatkozó referenciainformációkért látogasson el az OCI-összetevők adattárára