Odesílání a vyžádání artefaktů OCI pomocí registru kontejneru Azure
Registr kontejnerů Azure můžete použít k ukládání a správě artefaktů Open Container Initiative (OCI) imagí kontejnerů Dockeru a OCI.
Tento článek ukazuje, jak pomocí rozhraní příkazového řádku OCI jako úložiště (ORAS) odeslat ukázkový artefakt – textový soubor – do registru kontejneru Azure. Pak stáhněte artefakt z registru. Různé artefakty OCI v registru kontejneru Azure můžete spravovat pomocí různých nástrojů příkazového řádku odpovídajících jednotlivým artefaktům.
Předpoklady
- Registr kontejnerů Azure – Vytvořte registr kontejnerů ve svém předplatném Azure. Použijte například Azure Portal nebo az acr create.
- Azure CLI – Vyžaduje se verze
2.29.1
nebo novější. Viz Instalace Azure CLI pro instalaci nebo upgrade. - Rozhraní příkazového řádku ORAS – Vyžaduje se verze
v0.16.0
. Viz: Instalace ORAS. - Docker (volitelné) – I když není potřeba Docker Desktop,
oras
rozhraní příkazového řádku využívá úložiště přihlašovacích údajů desktopové verze Dockeru k ukládání přihlašovacích údajů. Pokud je nainstalovaný Docker Desktop, musí být spuštěn prooras login
.
Konfigurace registru
Nakonfigurujte proměnné prostředí pro snadné kopírování a vkládání příkazů do prostředí. Příkazy je možné spouštět místně nebo v Azure Cloud Shellu.
ACR_NAME=myregistry
REGISTRY=$ACR_NAME.azurecr.io
Přihlášení k registru
Ověřování pomocí individuální identity Microsoft Entra pomocí tokenu AD. Vždy použijte hodnotu 000 pro token, USER_NAME
protože se token parsuje prostřednictvím PASSWORD
proměnné.
# 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)
Poznámka:
ACR a ORAS podporují více možností ověřování pro uživatele a automatizaci systému. Tento článek používá jednotlivé identity pomocí tokenu Azure. Další možnosti ověřování najdete v tématu Ověřování pomocí registru kontejneru Azure.
Přihlášení pomocí ORAS
Zadejte přihlašovací údaje pro oras login
.
oras login $REGISTRY \
--username $USER_NAME \
--password $PASSWORD
Nasdílení kořenového artefaktu
Kořenový artefakt je artefakt, který nemá nadřazený subject
objekt. Kořenové artefakty můžou být cokoli z image kontejneru, chartu Helmu, souboru readme pro úložiště. Referenční artefakty popsané v tématu Připojení, vložení a přijetí změn artefaktů dodavatelského řetězce jsou artefakty , které odkazují na jiný artefakt. Referenční artefakty můžou být cokoli od podpisu, softwarového vyúčtování materiálů, sestavy skenování nebo jiných vyvíjejících se typů.
V tomto příkladu vytvořte obsah, který představuje soubor Markdown:
echo 'Readme Content' > readme.md
Následující krok nasdílí readme.md
soubor do <myregistry>.azurecr.io/samples/artifact:readme
souboru .
- Registr je identifikován plně kvalifikovaným názvem
<myregistry>.azurecr.io
registru (malými písmeny), za kterým následuje obor názvů a úložiště:/samples/artifact
. - Artefakt je označený
:readme
, aby ho jednoznačně identifikoval z jiných artefaktů uvedených v úložišti (:latest, :v1, :v1.0.1
). - Nastavení
--artifact-type readme/example
rozlišuje artefakt od image kontejneru, která používáapplication/vnd.oci.image.config.v1+json
. - Identifikuje
./readme.md
soubor nahraný a:application/markdown
představuje IANAmediaType
souboru.
Další informace najdete v tématu Pokyny pro autory artefaktů OCI.
oras push
Pomocí příkazu nasdílejte soubor do registru.
Linux, WSL2 nebo 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
Výstup úspěšného nasdílení změn je podobný následujícímu výstupu:
Uploading 2fdeac43552b readme.md
Uploaded 2fdeac43552b readme.md
Pushed <myregistry>.azurecr.io/samples/artifact:readme
Digest: sha256:e2d60d1b171f08bd10e2ed171d56092e39c7bac1aec5d9dcf7748dd702682d53
Nasdílení kořenového artefaktu s více soubory
Když se artefakty OCI nasdílí do registru s ORAS, každý odkaz na soubor se odešle jako objekt blob. Pokud chcete odeslat samostatné objekty blob, odkazujte na soubory jednotlivě nebo na kolekci souborů odkazováním na adresář.
Další informace o tom, jak odeslat kolekci souborů, najdete v tématu Odesílání artefaktů s více soubory.
Vytvořte pro úložiště určitou dokumentaci:
echo 'Readme Content' > readme.md
mkdir details/
echo 'Detailed Content' > details/readme-details.md
echo 'More detailed Content' > details/readme-more-details.md
Nasdílení artefaktu s více soubory:
Linux, WSL2 nebo 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
Zjištění manifestu
Pokud chcete zobrazit manifest vytvořený jako výsledek oras push
, použijte oras manifest fetch
:
oras manifest fetch --pretty $REGISTRY/samples/artifact:readme
Výstup bude vypadat přibližně takto:
{
"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"
}
}
Stažení kořenového artefaktu
Vytvoření čistého adresáře pro stahování
mkdir ./download
Spuštěním oras pull
příkazu stáhněte artefakt z registru.
oras pull -o ./download $REGISTRY/samples/artifact:readme
Zobrazení natažených souborů
tree ./download
Odebrání artefaktu (volitelné)
Pokud chcete odebrat artefakt z registru, použijte oras manifest delete
příkaz.
oras manifest delete $REGISTRY/samples/artifact:readme
Další kroky
- Další informace o odkazech na artefakty, přidružení podpisů, faktuře softwaru a dalších referenčních typech
- Další informace o projektu ORAS, včetně postupu konfigurace manifestu pro artefakt
- Referenční informace o nových typech artefaktů najdete v úložišti artefaktů OCI.