Kurz: Vytvoření registru kontejneru Azure a na push image kontejneru

Toto je druhá část třídílného kurzu. V první části tohoto kurzu se vytvářela image kontejneru Docker pro webovou aplikaci Node.js. V tomto kurzu nahrajete image do služby Azure Container Registry. Pokud jste image kontejneru ještě nevytvořili, vraťte se ke kurzu 1 – Vytvoření image kontejneru.

Služba Azure Container Registry je vaším privátním registrem Dockeru v Azure. V tomto kurzu, který je 2. částí série, jste:

  • Vytvoření instance Azure Container Registry pomocí Azure CLI
  • Označit image kontejneru pro svůj registr kontejneru Azure
  • Odeslat image do svého registru

V následujícím článku, který je posledním dílem série, nasadíte kontejner z privátního registru do služby Azure Container Instances.

Než začnete

Abyste mohli absolvovat tento kurz, musíte splňovat následující požadavky:

Azure CLI: Na svém místním počítači musíte mít nainstalované Azure CLI verze 2.0.29 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 rozhraní příkazového řádku Azure CLI.

Docker: V tomto kurzu se předpokládá základní znalost klíčových konceptů Dockeru, jako jsou kontejnery, image kontejnerů a základní příkazy docker. Základní informace o Dockeru a kontejnerech najdete v článku Docker Overview (Přehled Dockeru).

Docker: k dokončení tohoto kurzu potřebujete Docker nainstalovaný místně. Docker poskytuje balíčky, které nakonfigurují prostředí Dockeru v systému macOS, Windows a Linux.

Důležité

Vzhledem k tomu, že Azure Cloud Shell neobsahuje démona Dockeru, k dokončení tohoto kurzu musíte nainstalovat Azure CLI i modul Docker na svůj místní počítač. Pro účely tohoto kurzu není možné použít Azure Cloud Shell.

Vytvoření registru kontejneru Azure

Než vytvoříte registr kontejneru, budete potřebovat skupinu prostředků, do které ho budete moct nasadit. Skupina prostředků je logická kolekce, ve které se nasazují a spravují všech prostředky Azure.

Vytvořte skupinu prostředků pomocí příkazu az group create. V následujícím příkladu se vytvoří skupina prostředků s názvem myResourceGroup v oblasti eastus:

az group create --name myResourceGroup --location eastus

Jakmile vytvoříte skupinu prostředků, vytvořte registr kontejneru Azure pomocí příkazu az acr create. Název registru kontejneru musí být v rámci prostředí Azure jedinečný a musí obsahovat 5 až 50 alfanumerických znaků. Nahraďte položku <acrName> jedinečným názvem pro svůj registr:

az acr create --resource-group myResourceGroup --name <acrName> --sku Basic

Tady je částečný výstup nového registru kontejneru Azure s názvem mycontainerregistry082:

{
  "creationDate": "2020-07-16T21:54:47.297875+00:00",
  "id": "/subscriptions/<Subscription ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/mycontainerregistry082",
  "location": "eastus",
  "loginServer": "mycontainerregistry082.azurecr.io",
  "name": "mycontainerregistry082",
  "provisioningState": "Succeeded",
  "resourceGroup": "myResourceGroup",
  "sku": {
    "name": "Basic",
    "tier": "Basic"
  },
  "status": null,
  "storageAccount": null,
  "tags": {},
  "type": "Microsoft.ContainerRegistry/registries"
}

Zbývající část tohoto kurzu používá <acrName> jako zástupný text pro název registru kontejneru, který zvolíte v tomto kroku.

Přihlášení k registru kontejneru

Před nahráváním imagí do instance služby Azure Container Registry se k ní musíte přihlásit. Dokončete operaci pomocí příkazu az acr login. Je třeba uvést jedinečný název, který jste zvolili pro registr kontejneru při jeho vytváření.

az acr login --name <acrName>

Například:

az acr login --name mycontainerregistry082

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

Login Succeeded

Označení image kontejneru

Pokud chcete image kontejneru odeslat do privátního registru, jako je služba Azure Container Registry, musíte nejprve image označit úplným názvem přihlašovacího serveru registru.

Nejprve získejte úplný název přihlašovacího serveru pro svůj registr kontejneru Azure. Spusťte následující příkaz az acr show a nahraďte zástupný text <acrName> názvem registru, který jste právě vytvořili:

az acr show --name <acrName> --query loginServer --output table

Pokud se například váš registr jmenuje mycontainerregistry082, bude příkaz vypadat takto:

az acr show --name mycontainerregistry082 --query loginServer --output table
Result
------------------------
mycontainerregistry082.azurecr.io

Nyní zobrazte seznam místních imagí pomocí příkazu docker images:

docker images

Kromě ostatních imagí, které máte na svém počítači, byste měli vidět image aci-tutorial-app, které jste vytvořili v předchozím kurzu:

$ docker images
REPOSITORY          TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app    latest    5c745774dfa9    39 minutes ago    68.1 MB

Označte image aci-tutorial-app přihlašovacím serverem vašeho registru kontejneru. Na konec názvu image přidejte také značku :v1, abyste označili číslo verze image. Nahraďte položku <acrLoginServer> výsledkem příkazu az acr show, který jste spustili před chvílí.

docker tag aci-tutorial-app <acrLoginServer>/aci-tutorial-app:v1

Spusťte příkaz docker images znovu, abyste ověřili označení:

$ docker images
REPOSITORY                                            TAG       IMAGE ID        CREATED           SIZE
aci-tutorial-app                                      latest    5c745774dfa9    39 minutes ago    68.1 MB
mycontainerregistry082.azurecr.io/aci-tutorial-app    v1        5c745774dfa9    7 minutes ago     68.1 MB

Nahrání image do služby Azure Container Registry

Teď, když jste image aci-tutorial-app označili úplným názvem přihlašovacího serveru vašeho privátního registru, můžete image do registru nahrazovat pomocí příkazu docker push. Nahraďte položku <acrLoginServer> úplným názvem přihlašovacího serveru, který jste získali v dřívějším kroku.

docker push <acrLoginServer>/aci-tutorial-app:v1

Operace push by měla trvat několik sekund až několik minut v závislosti na připojení k internetu a výstup je podobný následujícímu:

$ docker push mycontainerregistry082.azurecr.io/aci-tutorial-app:v1
The push refers to a repository [mycontainerregistry082.azurecr.io/aci-tutorial-app]
3db9cac20d49: Pushed
13f653351004: Pushed
4cd158165f4d: Pushed
d8fbd47558a8: Pushed
44ab46125c35: Pushed
5bef08742407: Pushed
v1: digest: sha256:ed67fff971da47175856505585dcd92d1270c3b37543e8afd46014d328f05715 size: 1576

Vypsání seznamu imagí ve službě Azure Container Registry

Pokud si chcete ověřit, že image, kterou jste právě odeslali, se skutečně nachází v registru kontejneru Azure, použijte příkaz az acr repository list a prohlédněte si seznam imagí ve svém registru. Nahraďte položku <acrName> názvem svého registru kontejneru.

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

Příklad:

az acr repository list --name mycontainerregistry082 --output table
Result
----------------
aci-tutorial-app

Značky pro konkrétní image si můžete zobrazit pomocí příkazu az acr repository show-tags.

az acr repository show-tags --name <acrName> --repository aci-tutorial-app --output table

Zobrazený výstup by měl vypadat přibližně takto:

Result
--------
v1

Další kroky

V tomto kurzu jste připravili registr kontejneru Azure pro použití se službou Azure Container Instances a nahráli jste image kontejneru do registru. Dokončili jste následující kroky:

  • Vytvoření instance Azure Container Registry pomocí Azure CLI
  • Označení image kontejneru pro službu Azure Container Registry
  • Odeslání image do služby Azure Container Registry

Přejděte k dalšímu kurzu, ve kterém se naučíte, jak nasadit kontejner do prostředí Azure s použitím služby Azure Container Instances: