Samouczek: tworzenie obrazów kontenerów w klastrze usługi Service Fabric systemu Linux

Ten samouczek jest częścią serii samouczków demonstrujących sposób korzystania z kontenerów w klastrze usługi Service Fabric w systemie Linux. W tym samouczku aplikacja obsługująca wiele kontenerów jest przygotowywana do użycia z usługą Service Fabric. W kolejnych samouczkach te obrazy są używane jako część aplikacji usługi Service Fabric. Ten samouczek zawiera informacje na temat wykonywania następujących czynności:

  • Klonowanie źródła aplikacji z usługi GitHub
  • Tworzenie obrazu kontenera ze źródła aplikacji
  • Wdrażanie wystąpienia usługi Azure Container Registry (ACR)
  • Tagowanie obrazu kontenera na potrzeby usługi ACR
  • Przekazywanie obrazu do usługi ACR

Ta seria samouczków zawiera informacje na temat wykonywania następujących czynności:

Wymagania wstępne

  • Środowisko projektowe systemu Linux skonfigurowane na potrzeby usługi Service Fabric. Postępuj zgodnie z instrukcjami znajdującymi się tutaj, aby skonfigurować środowisko systemu Linux.
  • Ten samouczek wymaga interfejsu wiersza polecenia platformy Azure w wersji 2.0.4 lub nowszej. 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.
  • Wymagana jest również dostępna subskrypcja platformy Azure. Aby uzyskać więcej informacji dotyczących bezpłatnej wersji próbnej, przejdź tutaj.

Pobieranie kodu aplikacji

W tym samouczku jest używana przykładowa aplikacja do głosowania. Ta aplikacja składa się ze składnika internetowego frontonu oraz działającego na zapleczu wystąpienia usługi Redis. Te składniki są spakowane w kontenerze obrazów.

Użyj narzędzia git, aby pobrać kopię tej aplikacji do swojego środowiska projektowego.

git clone https://github.com/Azure-Samples/service-fabric-containers.git

cd service-fabric-containers/Linux/container-tutorial/

Rozwiązanie zawiera dwa foldery i plik „docker-compose.yml”. Folder „azure-vote” zawiera napisaną w języku Python usługę frontonu oraz plik Dockerfile używany do tworzenia obrazu. Katalog „Voting” zawiera wdrożony w klastrze pakiet aplikacji usługi Service Fabric. Te katalogi zawierają zasoby wymagane w tym samouczku.

Tworzenie obrazów kontenerów

Z poziomu katalogu azure-vote uruchom następujące polecenie, aby utworzyć obraz dla składnika internetowego frontonu. Do utworzenia obrazu to polecenie używa pliku Dockerfile znajdującego się w tym katalogu.

docker build -t azure-vote-front .

Uwaga

W razie odmowy przyznania uprawnień postępuj zgodnie z następującą dokumentacją dotyczącą pracy z programem Docker bez uprawnień „sudo”.

Wykonanie tego polecenia może zająć trochę czasu, ponieważ wszystkie wymagane zależności muszą zostać pobrane z usługi Docker Hub. Po zakończeniu użyj polecenia docker images , aby wyświetlić właśnie utworzony obraz azure-vote-front .

docker images

Wdrażanie usługi Azure Container Registry

Najpierw uruchom polecenie az login , aby zalogować się do konta platformy Azure.

az login

Następnie użyj polecenia az account, aby wybrać subskrypcję używaną do utworzenia rejestru usługi Azure Container. Musisz wprowadzić identyfikator subskrypcji subskrypcji platformy Azure zamiast <subscription_id>.

az account set --subscription <subscription_id>

W przypadku wdrażania usługi Azure Container Registry należy najpierw posiadać grupę zasobów. Grupa zasobów platformy Azure to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi.

Utwórz grupę zasobów za pomocą polecenia az group create. W tym przykładzie grupa zasobów o nazwie myResourceGroup jest tworzona w regionie westus.

az group create --name <myResourceGroup> --location westus

Utwórz rejestr kontenerów platformy Azure za pomocą polecenia az acr create . Zastąp <wartość acrName> nazwą rejestru kontenerów, który chcesz utworzyć w ramach subskrypcji. Ta nazwa może zawierać tylko znaki alfanumeryczne i musi być unikatowa.

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

W dalszej części tego samouczka wartość „acrName” jest używana jako symbol zastępczy wybranej nazwy rejestru kontenerów. Zanotuj tę wartość.

Zaloguj się do rejestru kontenerów

Zaloguj się do wystąpienia usługi ACR przed wypchnięciem do niego obrazów. Aby wykonać tę operację, użyj polecenia az acr login. Podaj unikatową nazwę nadaną rejestrowi kontenerów podczas jego tworzenia.

az acr login --name <acrName>

Polecenie zwraca komunikat „Logowanie pomyślne” po ukończeniu.

Tagowanie obrazów kontenerów

Każdy obraz kontenera należy otagować za pomocą nazwy loginServer rejestru. Ten tag jest używany na potrzeby kierowania podczas wypychania obrazów kontenerów do rejestru obrazów.

Aby wyświetlić listę bieżących obrazów, użyj polecenia docker images.

docker images

Dane wyjściowe:

REPOSITORY                   TAG                 IMAGE ID            CREATED              SIZE
azure-vote-front             latest              052c549a75bf        About a minute ago   913MB

Aby uzyskać nazwę loginServer, uruchom następujące polecenie:

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

Spowoduje to wygenerowanie tabeli z następującymi wynikami. Ten wynik zostanie użyty do otagowania obrazu azure-vote-front przed jego wypchnięciem do rejestru kontenerów w następnym kroku.

Result
------------------
<acrName>.azurecr.io

Teraz otaguj obraz azure-vote-front za pomocą nazwy loginServer swojego rejestru kontenerów. Ponadto dodaj wartość :v1 na końcu nazwy obrazu. Ten tag wskazuje wersję obrazu.

docker tag azure-vote-front <acrName>.azurecr.io/azure-vote-front:v1

Po otagowaniu uruchom polecenie „docker images”, aby zweryfikować operację.

Dane wyjściowe:

REPOSITORY                             TAG                 IMAGE ID            CREATED             SIZE
azure-vote-front                       latest              052c549a75bf        23 minutes ago      913MB
<acrName>.azurecr.io/azure-vote-front  v1                  052c549a75bf        23 minutes ago      913MB

Wypychanie obrazów do rejestru

Wypchnij obraz azure-vote-front do rejestru.

Korzystając z następującego przykładu, zastąp nazwę loginServer usługi ACR nazwą loginServer z używanego środowiska.

docker push <acrName>.azurecr.io/azure-vote-front:v1

Wykonanie poleceń docker push może potrwać kilka minut.

Wyświetlanie listy obrazów w rejestrze

Aby zwrócić listę obrazów, które zostały wypchnięte do usługi Azure Container Registry, użyj polecenia az acr repository list. Zaktualizuj polecenie nazwą wystąpienia usługi ACR.

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

Dane wyjściowe:

Result
----------------
azure-vote-front

Po ukończeniu tego samouczka obraz kontenera zostanie zapisany w prywatnym wystąpieniu usługi Azure Container Registry. W kolejnych samouczkach ten obraz zostanie wdrożony z usługi ACR do klastra usługi Service Fabric.

Następne kroki

W tym samouczku aplikacja została ściągnięta z witryny GitHub, a obrazy kontenerów zostały utworzone i wypchnięte do rejestru. Wykonano następujące czynności:

  • Klonowanie źródła aplikacji z usługi GitHub
  • Tworzenie obrazu kontenera ze źródła aplikacji
  • Wdrażanie wystąpienia usługi Azure Container Registry (ACR)
  • Tagowanie obrazu kontenera na potrzeby usługi ACR
  • Przekazywanie obrazu do usługi ACR

Przejdź do następnego samouczka, aby dowiedzieć się więcej o pakowaniu kontenerów do aplikacji usługi Service Fabric przy użyciu narzędzia Yeoman.