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:
- Tworzenie obrazów kontenerów dla usługi Service Fabric
- Kompilowanie i uruchamianie aplikacji usługi Service Fabric z kontenerami
- Sposób obsługi trybu failover i skalowania w usłudze Service Fabric
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 usługę Azure Container Registry za pomocą polecenia az acr create. Zastąp <ciąg 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
Wyjście:
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ę.
Wyjście:
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
Wyjście:
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.