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çinoras 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 login
sağ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:readme
iletirreadme.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ı kullananapplication/vnd.oci.image.config.v1+json
bir 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 push
olarak 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
- İmzaları, yazılım ürün reçetesini ve diğer başvuru türlerini ilişkilendiren Yapıt Başvuruları hakkında bilgi edinin
- Bir yapıt için bildirim yapılandırma da dahil olmak üzere ORAS Projesi hakkında daha fazla bilgi edinin
- Yeni yapıt türleri hakkında başvuru bilgileri için OCI Artifacts depoyu ziyaret edin