Prověřování operací registru při správě obrazů

Dokončeno

Registr kontejnerů Azure ukládá a spravuje privátní image kontejnerů a další artefakty, podobně jako Docker Hub ukládá veřejné image kontejnerů Dockeru. Rozhraní příkazového řádku Dockeru (Docker CLI) můžete použít k přihlášení, zápisu, vyžádání a dalším operacím imagí kontejneru v registru kontejneru.

Než začnete spravovat image v registru kontejneru, nakonfigurujte následující prostředky:

  • Registr kontejnerů Azure: Vytvořte v předplatném Azure registr kontejneru. Použijte například Azure Portal, Azure CLI nebo Azure PowerShell.
  • Azure CLI: Měli byste mít azure CLI nainstalované místně. Azure CLI může zjednodušit opakované úlohy.
  • Docker CLI: Lokálně byste měli mít nainstalovaný Docker Desktop. Docker Desktop umožňuje vytvářet a nasdílovat image založené na úložišti kódu. Docker poskytuje balíčky, které snadno konfigurují Docker na jakémkoli systému macOS, Windows nebo Linux.

Přihlášení k registru pomocí Azure CLI

Před nahráváním a stahováním obrazů kontejneru se musíte přihlásit k registru. Přihlášení je možné provést pomocí příkazu Azure CLI.

Azure CLI je k dispozici k instalaci v prostředích s Windows, macOS a Linuxem. Dá se spustit také v kontejneru Dockeru a v Azure Cloud Shellu. Aktuální verze Azure CLI je 2.53.0. Pokud chcete najít nainstalovanou verzi a zjistit, jestli ji potřebujete aktualizovat, spusťte příkaz az version.

Přihlaste se k Azure pomocí příkazu az login. Použijte předplatné Azure přidružené k vašemu projektu kontejneru.

Přihlaste se k registru pomocí příkazu az acr login. Při přihlašování pomocí Azure CLI zadejte pouze název zdroje registru. Nepoužívejte plně kvalifikovaný název přihlašovacího serveru. Například pomocí následujícího příkazu se přihlaste k registru s názvem mycontainerregistryapl2003.

az acr login --name mycontainerregistryapl2003

Po dokončení příkazu se vrátí zpráva Login Succeeded (Přihlášení bylo úspěšné).

Nahrání obrazu do registru

Pokud chcete odeslat image do registru kontejneru Azure, musíte nejprve mít image. Pokud nemáte žádné místní image kontejneru, použijte příkaz docker pull k načtení existující veřejné image.

Následující příklad načítá image hello-world z veřejného služby Microsoft Container Registry do místního počítače:

docker pull mcr.microsoft.com/hello-world

Než budete moct odeslat image do registru, musíte ji označit plně kvalifikovaným názvem přihlašovacího serveru registru. Název přihlašovacího serveru je ve formátu <registry-name>.azurecr.io (musí být malými písmeny), například mycontainerregistryapl2003.azurecr.io.

Image můžete označit pomocí příkazu docker tag následujícím způsobem:

docker tag mcr.microsoft.com/hello-world mycontainerregistryapl2003.azurecr.io/hello-world:v1

Tento příklad vytvoří cílový obraz značky (mycontainerregistryapl2003.azurecr.io/hello-world:v1), který odkazuje na zdrojový obraz (mcr.microsoft.com/hello-world).

Nakonec pomocí příkazu docker push odešlete místní image do instance registru. Následující příklad vytvoří úložiště hello-world obsahující image hello-world:v1.

docker push mycontainerregistryapl2003.azurecr.io/hello-world:v1

Po nasdílením image do registru kontejneru odeberte hello-world:v1 image z místního prostředí Dockeru. Příkaz docker rmi neodebere image z úložiště hello-world ve vašem registru kontejneru Azure.

docker rmi mycontainerregistryapl2003.azurecr.io/hello-world:v1

V Azure portálu zobrazte vložený obraz, otevřete registr kontejneru a pak vyberte úložiště.

snímek obrazovky se stránkou Úložiště instance služby Container Registry

Vytažení a odebrání obrazu registru

Pomocí příkazu docker pull stáhněte image z registru do místního počítače:

docker pull mycontainerregistryapl2003.azurecr.io/hello-world:v1

K odebrání imagí z registru kontejneru Azure můžete použít příkaz Azure CLI az acr repository delete. Následující příkaz například odstraní manifest odkazovaný značkou hello-world:v1, všechna jedinečná data vrstvy a všechny ostatní značky odkazující na manifest.

az acr repository delete --name mycontainerregistryapl2003 --image hello-world:v1