Azure kapsayıcı kayıt defteri kullanarak OCI yapıtlarını gönderme ve çekme

Open Container Initiative (OCI) yapıtlarının yanı sıra Docker ve OCI kapsayıcı görüntülerini depolamak ve yönetmek için bir Azure kapsayıcı kayıt defteri kullanabilirsiniz.

Bu özelliği göstermek için, bu makalede OCI Kayıt Defteri'ni Depolama (ORAS) CLI olarak kullanarak azure kapsayıcı kayıt defterine örnek yapıt (metin dosyası) gönderme adımları gösterilmektedir. Ardından, yapıtı kayıt defterinden çekin. Azure kapsayıcı kayıt defterindeki çeşitli OCI yapıtlarını, her yapıta uygun farklı komut satırı araçlarını kullanarak yönetebilirsiniz.

Ön koşullar

  • Azure kapsayıcısı kayıt defteri -Azure aboneliğinizde bir kapsayıcı kayıt defteri oluşturun. Örneğin, Azure portalını veya az acr create'ı kullanın.
  • Azure CLI - Sürüm 2.29.1 veya üzeri gereklidir. Yükleme ve/veya yükseltme için bkz . Azure CLI'yi yükleme.
  • ORAS CLI - Sürüm v0.16.0 gereklidir. Bkz. ORAS yüklemesi.
  • Docker (İsteğe bağlı) - Docker Desktop gerekli olmasa da CLI, oras kimlik bilgilerini depolamak için Docker masaüstü kimlik bilgisi depounu kullanır. Docker Desktop yüklüyse, için oras loginçalışıyor olmalıdır.

Kayıt defterini yapılandırma

Ortam değişkenlerini, komutları kolayca kopyalayıp kabuğunuza yapıştıracak şekilde yapılandırın. Komutlar yerel olarak veya Azure Cloud Shell'de çalıştırılabilir.

ACR_NAME=myregistry
REGISTRY=$ACR_NAME.azurecr.io

Kayıt defterinde oturum açma

AD belirteci kullanarak bireysel Microsoft Entra kimliğinizle kimlik doğrulaması. Belirteç değişken aracılığıyla PASSWORD ayrıştırıldığından USER_NAME her zaman için "000..." kullanın.

# 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)

Dekont

ACR ve ORAS, kullanıcılar ve sistem otomasyonu için birden çok kimlik doğrulama seçeneğini destekler. Bu makalede Azure belirteci kullanılarak tek tek kimlik kullanılır. Daha fazla kimlik doğrulama seçeneği için bkz. Azure kapsayıcı kayıt defteriyle kimlik doğrulaması

ORAS ile oturum açma

kimlik bilgilerini adresine oras loginsağlayın.

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

Kök yapıt gönderme

Kök yapıt, üst öğesi olmayan subject bir yapıttır. Kök yapıtlar bir kapsayıcı görüntüsünden, helm grafiğinden, depo için bir benioku dosyasından herhangi bir şey olabilir. Ekleme, gönderme ve çekme tedarik zinciri yapıtları bölümünde açıklanan başvuru yapıtları , başka bir yapıta başvuran yapıtlardır. Başvuru yapıtları bir imza, yazılım malzeme listesi, tarama raporu veya diğer gelişen türlerden herhangi bir şey olabilir.

Bu örnekte, markdown dosyasını temsil eden içerik oluşturun:

echo 'Readme Content' > readme.md

Aşağıdaki adım dosyayı adresine <myregistry>.azurecr.io/samples/artifact:readmeiletirreadme.md.

  • Kayıt defteri, tam kayıt defteri adıyla <myregistry>.azurecr.io (tümü küçük harfle) ve ardından ad alanı ve depoyla tanımlanır: /samples/artifact.
  • Yapıt, depoda ():latest, :v1, :v1.0.1 listelenen diğer yapıtlardan benzersiz olarak tanımlamak için etiketlenmiştir:readme.
  • Ayarı --artifact-type readme/example , yapıtı kullanan application/vnd.oci.image.config.v1+jsonbir kapsayıcı görüntüsünden ayırt eder.
  • karşıya ./readme.md yüklenen dosyayı tanımlar ve :application/markdown dosyasının IANA'sını mediaType temsil eder.
    Daha fazla bilgi için bkz . OCI Yapıt Yazarları Kılavuzu.

oras push Dosyayı kayıt defterinize göndermek için komutunu kullanın.

Linux, WSL2 veya 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

Başarılı bir gönderimin çıktısı aşağıdaki çıkışa benzer:

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

Çok dosyalı kök yapıt gönderme

OCI yapıtları ORAS ile bir kayıt defterine gönderildiğinde, her dosya başvurusu blob olarak gönderilir. Ayrı bloblar göndermek için dosyalara tek tek veya bir dizine başvurarak dosya koleksiyonuna başvurun.
Bir dosya koleksiyonunu gönderme hakkında daha fazla bilgi için bkz . Yapıtları birden çok dosyayla gönderme

Depo için bazı belgeler oluşturun:

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

Çok dosyalı yapıtı gönderme:

Linux, WSL2 veya 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

Bildirimi keşfedin

sonucu oras pusholarak oluşturulan bildirimi görüntülemek için kullanın oras manifest fetch:

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

Çıkış şuna benzer olacaktır:

{
  "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"
  }
}

Kök yapıt çekme

İndirme için temiz bir dizin oluşturma

mkdir ./download

oras pull Yapıtı kayıt defterinizden çekmek için komutunu çalıştırın.

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

Çekilen dosyaları görüntüleme

tree ./download

Yapıtı kaldırma (isteğe bağlı)

Yapıtı kayıt defterinizden kaldırmak için komutunu kullanın oras manifest delete .

 oras manifest delete $REGISTRY/samples/artifact:readme

Sonraki adımlar