Sdílet prostřednictvím


Uzamknutí image kontejneru v registru kontejneru Azure

Ve službě Azure Container Registry můžete uzamknout verzi image nebo úložiště, aby ho nebylo možné odstranit nebo aktualizovat. Pokud chcete uzamknout image nebo úložiště, aktualizujte jeho atributy pomocí příkazu Azure CLI az acr repository update.

Tento článek vyžaduje, abyste spustili Azure CLI v Azure Cloud Shellu nebo místně (doporučuje se verze 2.0.55 nebo novější). Verzi zjistíte spuštěním příkazu az --version. Pokud potřebujete instalaci nebo upgrade, přečtěte si téma Instalace Azure CLI.

Důležité

Tento článek se nevztahuje na uzamčení celého registru, například pomocí zámků nastavení > na webu Azure Portal nebo az lock příkazů v Azure CLI. Uzamčení prostředku registru vám nebrání v vytváření, aktualizaci nebo odstraňování dat v úložištích. Uzamčení registru má vliv pouze na operace správy, jako je přidání nebo odstranění replikací nebo odstranění samotného registru. Další informace o uzamčení prostředků, abyste zabránili neočekávaným změnám.

Scénáře

Ve výchozím nastavení je označená image ve službě Azure Container Registry proměnlivá, takže s příslušnými oprávněními můžete opakovaně aktualizovat a odeslat image se stejnou značkou do registru. Image kontejnerů je také možné podle potřeby odstranit . Toto chování je užitečné při vývoji imagí a potřebujete zachovat velikost registru.

Když ale nasadíte image kontejneru do produkčního prostředí, možná budete potřebovat neměnnou image kontejneru. Neměnný obrázek je obrázek, který nemůžete omylem odstranit nebo přepsat.

Viz Doporučení pro označování a správu verzí imagí kontejnerů pro strategie označování a verzí imagí ve vašem registru.

Pomocí příkazu az acr repository update nastavte atributy úložiště, abyste mohli:

  • Uzamčení verze image nebo celého úložiště

  • Ochrana verze image nebo úložiště před odstraněním, ale povolit aktualizace

  • Zabránění operacím čtení (vyžádání) na verzi image nebo celému úložišti

Příklady najdete v následujících částech.

Uzamčení image nebo úložiště

Zobrazení aktuálních atributů úložiště

Pokud chcete zobrazit aktuální atributy úložiště, spusťte následující příkaz az acr repository show :

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

Zobrazení atributů aktuálního obrázku

Pokud chcete zobrazit aktuální atributy značky, spusťte následující příkaz az acr repository show :

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

Uzamknutí obrázku podle značky

Pokud chcete uzamknout image myrepo:tag v myregistry, spusťte následující příkaz az acr repository update :

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

Uzamčení obrázku hodnotou hash manifestu

Pokud chcete uzamknout image myrepo identifikované hodnotou hash manifestu (sha-256 hash, reprezentovaná jako sha256:...), spusťte následující příkaz. (Pokud chcete najít hodnotu hash manifestu přidruženou k jedné nebo více značek obrázků, spusťte příkaz az acr manifest list-metadata .)

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

Uzamčení úložiště

Pokud chcete uzamknout úložiště myrepo a všechny image v něm, spusťte následující příkaz:

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

Výpis atributů aktuálního úložiště

Pokud chcete aktualizovat atributy úložiště tak, aby označily výpis zámku image, spusťte příkaz az acr repository update .

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

Zobrazení atributů obrázku při uzamčení obrázku

Pokud chcete dotazovat značky na zámek obrázku s povoleným --list-enabled false atributem, spusťte příkaz az acr repository show .

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

Zkontrolujte atributy obrázku pro značku a odpovídající manifest.

Poznámka:

  • Změnitelné atributy značek a manifestu se spravují samostatně. To znamená, že nastavení atributu deleteEnabled=false pro značku nenastaví stejné pro odpovídající manifest.
  • Pomocí následujícího skriptu zadejte dotaz na atributy:
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"

Poznámka:

Pokud jsou atributy image nastaveny s writeEnabled=false nebo deleteEnabled=false, pak bude blokovat odstranění image.

Ochrana image nebo úložiště před odstraněním

Ochrana image před odstraněním

Pokud chcete, aby se image myrepo:tag aktualizovala, ale neodstranila, spusťte následující příkaz:

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

Ochrana úložiště před odstraněním

Následující příkaz nastaví úložiště myrepo , aby ho nebylo možné odstranit. Jednotlivé obrázky je stále možné aktualizovat nebo odstranit.

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

Zabránění operacím čtení v imagi nebo úložišti

Pokud chcete zabránit operacím čtení (pull) na imagi myrepo:tag , spusťte následující příkaz:

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

Pokud chcete zabránit operacím čtení u všech imagí v úložišti myrepo , spusťte následující příkaz:

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

Odemknutí image nebo úložiště

Pokud chcete obnovit výchozí chování image myrepo:tag , aby bylo možné ji odstranit a aktualizovat, spusťte následující příkaz:

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

Pokud chcete obnovit výchozí chování úložiště myrepo , které umožňuje odstranění a aktualizaci jednotlivých imagí, spusťte následující příkaz:

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

Pokud je však v manifestu zámek, musíte spustit další příkaz k odemknutí manifestu.

az acr repository update \
   --name myregistry --image $repo@$digest \
   --delete-enabled true --write-enabled true

Další kroky

V tomto článku jste se dozvěděli o použití příkazu az acr repository update , abyste zabránili odstranění nebo aktualizaci verzí imagí v úložišti. Pokud chcete nastavit další atributy, podívejte se na referenční informace k příkazu az acr repository update .

Pokud chcete zobrazit atributy nastavené pro verzi image nebo úložiště, použijte příkaz az acr repository show .

Podrobnosti o operacích odstranění najdete v tématu Odstranění imagí kontejnerů ve službě Azure Container Registry.