Samouczek: tworzenie rejestru kontenerów platformy Azure i wypychanie obrazu kontenera

Niniejszy samouczek jest drugą częścią trzyczęściowej serii. W części pierwszej samouczka utworzono obraz kontenera Docker dla aplikacji internetowej środowiska Node.js. W tym samouczku obraz zostanie wypchnięty do usługi Azure Container Registry. Jeśli obraz kontenera nie został jeszcze utworzony, wróć do artykułu Samouczek 1 — Tworzenie obrazu kontenera.

Usługa Azure Container Registry jest prywatnym rejestrem platformy Docker na platformie Azure. W tym samouczku, w drugiej części serii, wykonasz następujące elementy:

  • Tworzenie wystąpienia Azure Container Registry za pomocą interfejsu wiersza polecenia platformy Azure
  • Otagowanie obrazu kontenera na potrzeby usługi Azure Container Registry
  • Przekazanie obrazu do rejestru

W następnym artykule, czyli ostatnim z tej serii, będzie miało miejsce wdrożenie kontenera z poziomu rejestru prywatnego do usługi Azure Container Instances.

Zanim rozpoczniesz

Aby ukończyć ten samouczek, musisz spełniać następujące wymagania:

Interfejs wiersza polecenia platformy Azure: musisz mieć interfejs wiersza polecenia platformy Azure w wersji 2.0.29 lub nowszej zainstalowany na komputerze lokalnym. Uruchom polecenie az --version, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie interfejsu, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

Docker: ten samouczek zakłada, że masz podstawową wiedzę na temat najważniejszych pojęć usługi Docker, takich jak kontenery, obrazy kontenera i podstawowe polecenia docker. Aby uzyskać podstawowe informacje na temat platformy Docker i kontenerów, zapoznaj się z artykułem Docker overview (Przegląd platformy Docker).

Docker: do ukończenia tego samouczka potrzebna jest platforma Docker zainstalowana lokalnie. Platforma Docker udostępnia pakiety, które konfigurują środowisko platformy Docker w systemach macOS, Windows i Linux.

Ważne

Ponieważ usługa Azure Cloud Shell nie zawiera demona platformy Docker, w celu ukończenia tego samouczka musisz zainstalować na swoim komputerze lokalnym wiersz polecenia platformy Azure i aparat platformy Docker. W tym samouczku nie możesz korzystać z usługi Azure Cloud Shell.

Tworzenie rejestru kontenerów platformy Azure

Przed utworzeniem rejestru kontenerów należy zapewnić grupę zasobów, w której zostanie wdrożony. Grupa zasobów to kolekcja logiczna przeznaczona do wdrażania wszystkich zasobów platformy Azure i zarządzania nimi.

Utwórz grupę zasobów za pomocą polecenia az group create. W poniższym przykładzie grupa zasobów o nazwie myResourceGroup zostanie utworzona w regionie eastus:

az group create --name myResourceGroup --location eastus

Po utworzeniu grupy zasobów utwórz rejestr kontenerów platformy Azure za pomocą polecenia az acr create. Nazwa rejestru kontenerów musi być unikatowa w obrębie platformy Azure i może zawierać od 5 do 50 znaków alfanumerycznych. Zamień wartość <acrName> na unikatową nazwę rejestru:

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

Poniżej przedstawiono częściowe dane wyjściowe dla nowego rejestru kontenerów platformy Azure o nazwie 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"
}

Dalsza część tego samouczka odnosi się do wartości <acrName> jako symbolu zastępczego dla nazwy rejestru kontenerów, która została wybrana w tym kroku.

Logowanie do rejestru kontenerów

Należy zalogować się do wystąpienia usługi Azure Container Registry przed wypchnięciem do niego obrazów. Aby wykonać tę operację, użyj polecenia az acr login. Należy wprowadzić unikatową nazwę wybraną dla rejestru kontenerów podczas jego tworzenia.

az acr login --name <acrName>

Przykład:

az acr login --name mycontainerregistry082

Po ukończeniu polecenie zwraca ciąg Login Succeeded:

Login Succeeded

Tagowanie obrazu kontenera

Aby wypchnąć obraz kontenera do prywatnego rejestru, takiego jak usługa Azure Container Registry, najpierw musisz otagować obraz pełną nazwą serwera logowania rejestru.

Najpierw pobierz pełną nazwę serwera logowania dla rejestru kontenerów platformy Azure. Uruchom następujące polecenie az acr show i zastąp wartość <acrName> nazwą utworzonego rejestru:

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

Przykładowo jeśli rejestr ma nazwę mycontainerregistry082:

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

Teraz wyświetl listę obrazów lokalnych przy użyciu polecenia docker images:

docker images

Wraz z innymi obrazami na maszynie powinien zostać wyświetlony obraz aci-tutorial-app, który został utworzony w poprzednim samouczku:

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

Otaguj obraz aplikacji aci-tutorial-app przy użyciu serwera logowania rejestru kontenerów. Ponadto dodaj tag :v1 na końcu nazwy obrazu, aby wskazać numer wersji obrazu. Zastąp wartość <acrLoginServer> wynikiem polecenia az acr show, które zostało wykonane wcześniej.

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

Uruchom polecenie docker images ponownie, aby zweryfikować operację tagowania:

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

Wypychanie obrazu do usługi Azure Container Registry

Teraz, gdy obraz aplikacji aci-tutorial-app został otagowany przy użyciu pełnej nazwy serwera logowania rejestru prywatnego, możesz wypchnąć obraz do rejestru za pomocą polecenia docker push . Zastąp wartość <acrLoginServer> pełną nazwa serwera logowania uzyskaną we wcześniejszym kroku.

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

Operacja push może trwać od kilku sekund do kilku minut w zależności od połączenia internetowego, a jej dane wyjściowe są podobne następujących:

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

Wyświetlanie listy obrazów w usłudze Azure Container Registry

Aby sprawdzić, czy właśnie wypchnięty obraz rzeczywiście znalazł się w rejestrze kontenerów platformy Azure, wyświetl listę obrazów w rejestrze, korzystając z polecenia az acr repository list. Zastąp wartość <acrName> nazwą rejestru kontenerów.

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

Przykład:

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

Aby wyświetlić tagi dla określonego obrazu, użyj polecenia az acr repository show-tags.

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

Wyświetlone dane wyjściowe powinny przypominać następujące dane:

--------
v1

Następne kroki

W tym samouczku przygotowano rejestr kontenerów platformy Azure do używania z usługą Azure Container Instances oraz wypchnięto obraz kontenera do rejestru. Wykonano następujące czynności:

  • Tworzenie wystąpienia Azure Container Registry za pomocą interfejsu wiersza polecenia platformy Azure
  • Tagowanie obrazu kontenera na potrzeby usługi Azure Container Registry
  • Przekazywanie obrazu do usługi Azure Container Registry

Przejdź do kolejnego samouczka, aby uzyskać więcej informacji o sposobie wdrażania kontenera za pomocą usługi Azure Container Instances: