Rychlý start: Vytvoření privátního registru kontejnerů pomocí Azure CLI

Azure Container Registry je služba privátního registru pro vytváření, ukládání a správu imagí kontejnerů a souvisejících artefaktů. V tomto rychlém startu vytvoříte instanci služby Azure Container Registry pomocí Azure CLI. Potom pomocí příkazů Dockeru nasdílejte image kontejneru do registru a nakonec image z registru stáhněte a spusťte.

Tento rychlý start vyžaduje, abyste měli spuštěné Azure CLI (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.

Je také nutné mít Docker nainstalovaný místně. Docker nabízí balíčky pro snadnou konfiguraci Dockeru v libovolném systému macOS, Windows nebo Linux.

Azure Cloud Shell neobsahuje všechny požadované součásti Dockeru (démon dockerd), a proto pro tento rychlý start nelze Cloud Shell použít.

Vytvoření skupiny prostředků

Vytvořte skupinu prostředků pomocí příkazu az group create. Skupina prostředků Azure je logický kontejner, ve kterém se nasazují a spravují prostředky Azure.

Následující příklad vytvoří skupinu prostředků myResourceGroup v umístění eastus.

az group create --name myResourceGroup --location eastus

Vytvoření registru kontejneru

V tomto rychlém startu vytvoříte registr Úrovně Basic, což je nákladově optimalizovaná možnost pro vývojáře, kteří se dozví o Azure Container Registry. Podrobnosti o dostupných úrovních služby najdete v tématu Úrovně služby Container Registry.

Pomocí příkazu az acr create vytvořte instanci služby ACR. Název registru musí být jedinečný v rámci Azure a musí obsahovat 5 až 50 malých alfanumerických znaků. V následujícím příkladu se používá mycontainerregistry . Aktualizujte název na jedinečnou hodnotu.

az acr create --resource-group myResourceGroup \
  --name mycontainerregistry --sku Basic

Po vytvoření registru je výstup podobný tomuto:

{
  "adminUserEnabled": false,
  "creationDate": "2019-01-08T22:32:13.175925+00:00",
  "id": "/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry",
  "location": "eastus",
  "loginServer": "mycontainerregistry.azurecr.io",
  "name": "mycontainerregistry",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Poznamenejte si ho loginServer ve výstupu, což je plně kvalifikovaný název registru (všechna malá písmena). Ve zbývající části tohoto rychlého startu <registry-name> je zástupný symbol pro název registru kontejneru a <login-server> zástupný symbol pro název přihlašovacího serveru registru.

Tip

V tomto rychlém startu vytvoříte registr Úrovně Basic, což je nákladově optimalizovaná možnost pro vývojáře, kteří se seznámí s Azure Container Registry. Zvolte další úrovně pro zvýšení propustnosti úložiště a image a možnosti, jako je připojení pomocí privátního koncového bodu. Podrobnosti o dostupných úrovních služby (SKU) najdete v tématu Úrovně služby Container Registry.

Přihlášení k registru

Před nasdílením a vyžádáním imagí kontejneru se musíte přihlásit k registru. K tomu použijte příkaz az acr login. Při přihlašování pomocí Azure CLI zadejte pouze název prostředku registru. Nepoužívejte plně kvalifikovaný název přihlašovacího serveru.

az acr login --name <registry-name>

Příklad:

az acr login --name mycontainerregistry

Příkaz po dokončení vrátí zprávu Login Succeeded (Přihlášení bylo úspěšné).

Odeslání image do registru

Pokud chcete nasdílet image do služby Azure Container Registry, musíte nejprve mít nějakou image. Pokud ještě nemáte žádné místní image kontejneru, spuštěním následujícího příkazu docker pull stáhněte existující veřejnou image. V tomto příkladu hello-world stáhněte image ze služby Microsoft Container Registry.

docker pull mcr.microsoft.com/hello-world

Před odesláním image do registru ji musíte označit plně kvalifikovaným názvem přihlašovacího serveru registru. Název přihlašovacího serveru je ve formátu <název>_registru.azurecr.io (musí být všechna malá písmena), například mycontainerregistry.azurecr.io.

Označte image pomocí příkazu docker tag. Nahraďte <login-server> názvem přihlašovacího serveru vaší instance ACR.

docker tag mcr.microsoft.com/hello-world <login-server>/hello-world:v1

Příklad:

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

Nakonec pomocí docker push nasdílejte image do instance registru. Nahraďte <login-server> názvem přihlašovacího serveru vaší instance registru. Tento příklad vytvoří úložiště hello-world obsahující hello-world:v1 image.

docker push <login-server>/hello-world:v1

Po nasdílením image do registru kontejneru hello-world:v1 odeberte image z místního prostředí Dockeru. (Všimněte si, že tento příkaz docker rmi neodebere image z úložiště hello-world ve vašem registru kontejneru Azure.)

docker rmi <login-server>/hello-world:v1

Výpis imagí kontejnerů

Následující příklad vypíše úložiště ve vašem registru:

az acr repository list --name <registry-name> --output table

Výstup:

Result
----------------
hello-world

Následující příklad uvádí seznam značek v úložišti hello-world .

az acr repository show-tags --name <registry-name> --repository hello-world --output table

Výstup:

Result
--------
v1

Spuštění image z registru

Teď můžete vyžádat a spustit image kontejneru hello-world:v1 z registru kontejneru pomocí příkazu Docker run:

docker run <login-server>/hello-world:v1  

Příklad výstupu:

Unable to find image 'mycontainerregistry.azurecr.io/hello-world:v1' locally
v1: Pulling from hello-world
Digest: sha256:662dd8e65ef7ccf13f417962c2f77567d3b132f12c95909de6c85ac3c326a345
Status: Downloaded newer image for mycontainerregistry.azurecr.io/hello-world:v1

Hello from Docker!
This message shows that your installation appears to be working correctly.

[...]

Vyčištění prostředků

Pokud už je nepotřebujete, můžete pomocí příkazu az group delete odebrat skupinu prostředků, registr kontejneru a tam uložené image kontejneru.

az group delete --name myResourceGroup

Další kroky

V tomto rychlém startu jste pomocí Azure CLI vytvořili Azure Container Registry, nasdílili jste do registru image kontejneru a image jste z registru stáhli a spustili. Pokračujte k Azure Container Registry kurzům, kde se na ACR podíváme podrobněji.