Azure kapsayıcı kayıt defterinde bir kapsayıcı görüntüsünü kilitleyin

Azure kapsayıcı kayıt defterinde, silinemez veya güncelleştirilemez şekilde görüntü sürümünü veya deposunu kilitleyebilirsiniz. Bir görüntüyü veya depoyu kilitlemek için az acr repository update Azure CLI komutunu kullanarak özniteliklerini güncelleştirin.

Bu makale, Azure CLI'yi Azure Cloud Shell veya yerel olarak çalıştırmanızı gerektirir (sürüm 2.0.55 veya üzeri önerilir). Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Önemli

Bu makale, örneğin Azure portal Ayarlar > Kilitleri'ni veya az lock Azure CLI'daki komutları kullanarak kayıt defterinin tamamını kilitlemek için geçerli değildir. Kayıt defteri kaynağını kilitlemek, depolardaki verileri oluşturmanızı, güncelleştirmenizi veya silmenizi engellemez. Kayıt defterinin kilitlenmesi yalnızca çoğaltma ekleme veya silme ya da kayıt defterinin kendisini silme gibi yönetim işlemlerini etkiler. Beklenmeyen değişiklikleri önlemek için kaynakları kilitleme bölümünde daha fazla bilgi bulabilirsiniz.

Senaryolar

Varsayılan olarak, Azure Container Registry'deki etiketli bir görüntü değişebilir, bu nedenle uygun izinlerle aynı etikete sahip bir görüntüyü tekrar tekrar güncelleştirebilir ve kayıt defterine gönderebilirsiniz. Kapsayıcı görüntüleri de gerektiğinde silinebilir . Bu davranış, görüntü geliştirirken ve kayıt defteriniz için bir boyut korumanız gerektiğinde yararlıdır.

Ancak, bir kapsayıcı görüntüsünü üretime dağıttığınızda sabit bir kapsayıcı görüntüsüne ihtiyacınız olabilir. Sabit bir görüntü, yanlışlıkla silemez veya üzerine yazamazsınız.

Kayıt defterinizdeki görüntüleri etiketleme ve sürüm oluşturma stratejileri için bkz. Kapsayıcı görüntülerini etiketleme ve sürüm oluşturma önerileri.

Aşağıdakileri yapmak için az acr repository update komutunu kullanarak depo özniteliklerini ayarlayın:

  • Görüntü sürümünü veya deponun tamamını kilitleme

  • Görüntü sürümünü veya deposunu silinmeye karşı koruma, ancak güncelleştirmelere izin verme

  • Görüntü sürümünde veya deponun tamamında okuma (çekme) işlemlerini engelleme

Örnekler için aşağıdaki bölümlere bakın.

Görüntü veya depo kilitleme

Geçerli depo özniteliklerini gösterme

Bir deponun geçerli özniteliklerini görmek için aşağıdaki az acr repository show komutunu çalıştırın:

az acr repository show \
    --name myregistry --repository myrepo \
    --output jsonc

Geçerli görüntü özniteliklerini gösterme

Bir etiketin geçerli özniteliklerini görmek için aşağıdaki az acr repository show komutunu çalıştırın:

az acr repository show \
    --name myregistry --image myrepo:tag \
    --output jsonc

Resmi etikete göre kilitleme

Myrepo:tag görüntüsünü kayıt defterimde kilitlemek için aşağıdaki az acr repository update komutunu çalıştırın:

az acr repository update \
    --name myregistry --image myrepo:tag \
    --write-enabled false

Bildirim özetiyle görüntüyü kilitleme

Bildirim özeti (olarak sha256:...temsil edilen SHA-256 karması) tarafından tanımlanan bir myrepo görüntüsünü kilitlemek için aşağıdaki komutu çalıştırın. (Bir veya daha fazla görüntü etiketiyle ilişkili bildirim özetini bulmak için az acr manifest list-metadata komutunu çalıştırın.)

az acr repository update \
    --name myregistry --image myrepo@sha256:123456abcdefg \
    --write-enabled false

Depo kilitleme

myrepo deposunu ve içindeki tüm görüntüleri kilitlemek için aşağıdaki komutu çalıştırın:

az acr repository update \
    --name myregistry --repository myrepo \
    --write-enabled false

Geçerli depo özniteliklerini listeleme

Depo özniteliklerini görüntü kilidi listesini gösterecek şekilde güncelleştirmek için az acr repository update komutunu çalıştırın.

az acr repository update \
    --name myregistry --repository myrepo \ 
    --list-enabled false

Görüntü kilitinde görüntü özniteliklerini gösterme

Özniteliğinde etkin olan --list-enabled false bir görüntü kilidindeki etiketleri sorgulamak için az acr repository show komutunu çalıştırın.

az acr repository show-manifests \
    --name myregistry --repository myrepo \
    --query "[?listEnabled==null].tags" 
    --output table

Etiket ve buna karşılık gelen bildirim için görüntü özniteliklerini denetleyin.

Not

  • Etiketlerin ve bildirimin değiştirilebilir öznitelikleri ayrı olarak yönetilir. Diğer bir ifadeyle, etiketin ayar özniteliği deleteEnabled=false ilgili bildirim için aynı ayar yapmaz.
  • Aşağıdaki betiği kullanarak öznitelikleri sorgula:
registry="myregistry"
repo="myrepo"
tag="mytag"

az login
az acr repository show -n $registry --repository $repo
az acr manifest show-metadata -r $registry -n "$repo:$tag"
digest=$(az acr manifest show-metadata -r $registry -n "$repo:$tag" --query digest -o tsv)
az acr manifest show-metadata -r $registry -n "$repo@$digest"

Not

Görüntü öznitelikleri veya deleteEnabled=falseile writeEnabled=false ayarlanırsa, görüntü silme işlemini engeller.

Görüntüyü veya depoları silinmeye karşı koruma

Görüntüyü silinmeye karşı koruma

myrepo:tag görüntüsünün güncelleştirilmesi ancak silinmemesi için aşağıdaki komutu çalıştırın:

az acr repository update \
    --name myregistry --image myrepo:tag \
    --delete-enabled false --write-enabled true

Deponun silinmesini koruma

Aşağıdaki komut , myrepo deposunu silinemez şekilde ayarlar. Tek tek görüntüler yine güncelleştirilebilir veya silinebilir.

az acr repository update \
    --name myregistry --repository myrepo \
    --delete-enabled false --write-enabled true

Görüntüde veya depoda okuma işlemlerini engelleme

myrepo:tag görüntüsünde okuma (çekme) işlemlerini önlemek için aşağıdaki komutu çalıştırın:

az acr repository update \
    --name myregistry --image myrepo:tag \
    --read-enabled false

myrepo deposundaki tüm görüntülerde okuma işlemlerini önlemek için aşağıdaki komutu çalıştırın:

az acr repository update \
    --name myregistry --repository myrepo \
    --read-enabled false

Görüntünün veya deponun kilidini açma

myrepo:tag görüntüsünün varsayılan davranışını silinip güncelleştirilecek şekilde geri yüklemek için aşağıdaki komutu çalıştırın:

az acr repository update \
    --name myregistry --image myrepo:tag \
    --delete-enabled true --write-enabled true

Myrepo deposunun ve tüm görüntülerin silinip güncelleştirilebilmesi için varsayılan davranışını geri yüklemek için aşağıdaki komutu çalıştırın:

az acr repository update \
    --name myregistry --repository myrepo \
    --delete-enabled true --write-enabled true

Sonraki adımlar

Bu makalede, bir depodaki görüntü sürümlerinin silinmesini veya güncelleştirilmesini önlemek için az acr repository update komutunu kullanmayı öğrendiniz. Ek öznitelikler ayarlamak için az acr repository update komut başvurusuna bakın.

Görüntü sürümü veya deposu için ayarlanan öznitelikleri görmek için az acr repository show komutunu kullanın.

Silme işlemleri hakkında ayrıntılı bilgi için bkz. Azure Container Registry'da kapsayıcı görüntülerini silme.