Freigeben über


Tutorial: Erstellen von Containerimages für einen Linux-Service Fabric-Cluster

Dieses Tutorial ist der erste Teil einer Tutorialreihe, in der die Verwendung von Containern in einem Linux-basierten Service Fabric-Cluster veranschaulicht wird. In diesem Tutorial wird eine Anwendung mit mehreren Containern für die Verwendung mit Service Fabric vorbereitet. In den nachfolgenden Tutorials werden diese Images als Teil einer Service Fabric-Anwendung verwendet. In diesem Tutorial lernen Sie Folgendes:

  • Klonen der Anwendungsquelle von GitHub
  • Erstellen eines Containerimages aus der Anwendungsquelle
  • Bereitstellen einer Azure Container Registry-Instanz (ACR)
  • Kennzeichnen eines Containerimages für ACR
  • Hochladen des Images in die ACR-Instanz

In dieser Tutorialreihe lernen Sie Folgendes:

Voraussetzungen

  • Einrichtung der Linux-Entwicklungsumgebung für Service Fabric. Befolgen Sie die hier aufgeführten Anweisungen, um die Linux-Umgebung einzurichten.
  • Für dieses Tutorial müssen Sie mindestens Version 2.0.4 der Azure-Befehlszeilenschnittstelle ausführen. Führen Sie az --version aus, um die Version zu finden. Installations- und Upgradeinformationen finden Sie bei Bedarf unter Installieren von Azure CLI.
  • Außerdem ist es erforderlich, dass Sie über ein Azure-Abonnement verfügen. Weitere Informationen zu einer kostenlosen Testversion finden Sie hier.

Abrufen von Anwendungscode

Die in diesem Tutorial verwendete Beispielanwendung ist eine Abstimmungs-App. Die Anwendung besteht aus einer Front-End-Webkomponente und einer Back-End-Redis-Instanz. Die Komponenten werden in Containerimages gepackt.

Verwenden Sie Git, um eine Kopie der Anwendung in Ihre Entwicklungsumgebung herunterzuladen.

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

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

Die Projektmappe enthält zwei Ordner und die Datei „docker-compose.yml“. Der Ordner „azure-vote“ enthält den Python-Front-End-Dienst und die zur Imageerstellung verwendete Dockerfile. Das Verzeichnis „Voting“ enthält das Service Fabric-Anwendungspaket, das für den Cluster bereitgestellt wird. Diese Verzeichnisse enthalten die erforderlichen Ressourcen für dieses Tutorial.

Erstellen von Containerimages

Führen Sie im Verzeichnis azure-vote den folgenden Befehl aus, um das Image für die Front-End-Webkomponente zu erstellen. Dieser Befehl verwendet die Dockerfile-Datei in diesem Verzeichnis, um das Image zu erstellen.

docker build -t azure-vote-front .

Hinweis

Wenn die Berechtigung verweigert wird, befolgen Sie diese Dokumentation zum Arbeiten mit Docker ohne sudo.

Die Befehlsausführung kann eine Weile dauern, da alle erforderlichen Abhängigkeiten vom Docker-Hub abgerufen werden müssen. Verwenden Sie anschließend den Befehl docker-images, um die soeben erstellte azure-vote-front anzuzeigen.

docker images

Bereitstellen von Azure Container Registry

Führen Sie zunächst den Befehl az login aus, um sich bei Ihrem Azure-Konto anzumelden.

az login

Verwenden Sie dann den Befehl az account, um Ihr Abonnement für die Erstellung der Azure Container Registry-Instanz auszuwählen. Anstelle von <subscription_id> müssen Sie die Abonnement-ID Ihres Azure-Abonnements angeben.

az account set --subscription <subscription_id>

Für die Bereitstellung einer Azure Container Registry-Instanz benötigen Sie zunächst eine Ressourcengruppe. Eine Azure-Ressourcengruppe ist ein logischer Container, in dem Azure-Ressourcen bereitgestellt und verwaltet werden.

Erstellen Sie mithilfe des Befehls az group create eine Ressourcengruppe. In diesem Beispiel wird eine Ressourcengruppe mit dem Namen myResourceGroup in der Region westus erstellt.

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

Erstellen Sie mit dem Befehl az acr create eine Azure Container Registry-Instanz. Ersetzen Sie <acrName> durch den Namen der Containerregistrierung, die Sie in Ihrem Abonnement erstellen möchten. Dieser muss aus alphanumerischen Zeichen bestehen und eindeutig sein.

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

Im weiteren Verlauf des Tutorials verwenden wir „acrName“ als Platzhalter für den von Ihnen gewählten Namen der Containerregistrierung. Bitte notieren Sie sich diesen Wert.

Anmelden bei Ihrer Containerregistrierung

Melden Sie sich zunächst bei Ihrer ACR-Instanz an, bevor Sie Images per Push in sie übertragen. Verwenden Sie den Befehl az acr login, um den Vorgang abzuschließen. Geben Sie den eindeutigen Namen an, den die Containerregistrierung bei ihrer Erstellung erhalten hat.

az acr login --name <acrName>

Nach Abschluss des Vorgangs wird eine Erfolgsmeldung zurückgegeben.

Kennzeichnen von Containerimages

Jedes Containerimage muss mit dem loginServer-Namen der Registrierung gekennzeichnet werden. Dieses Tag wird beim Übertragen von Containerimages per Push in eine Imageregistrierung für das Routing verwendet.

Verwenden Sie den Befehl docker images, um eine Liste der aktuellen Images anzuzeigen.

docker images

Ausgabe:

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

Führen Sie den folgenden Befehl aus, um den loginServer-Namen abzurufen:

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

Dadurch wird eine Tabelle mit den folgenden Ergebnissen ausgegeben. Dieses Ergebnis wird zur Kennzeichnung Ihres azure-vote-front-Images verwendet, bevor es im nächsten Schritt an die Containerregistrierung weitergeleitet wird.

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

Kennzeichnen Sie nun das Image azure-vote-front mit dem „loginServer“-Namen der Containerregistrierung. Fügen Sie zudem :v1 am Ende des Imagenamens hinzu. Dieses Tag gibt die Imageversion an.

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

Führen Sie nach der Kennzeichnung den Befehl „docker images“ aus, um den Vorgang zu überprüfen.

Ausgabe:

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

Übertragen von Images in die Registrierung per Push

Übertragen Sie das Image azure-vote-front per Push in die Registrierung.

Verwenden Sie das folgende Beispiel, und ersetzen Sie den ACR-loginServer-Namen durch den loginServer-Namen aus Ihrer Umgebung.

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

Die Ausführung der Docker-Push-Befehle nimmt einige Minuten in Anspruch.

Auflisten von Images in der Registrierung

Führen Sie den Befehl az acr repository list aus, um eine Liste der Images zurückzugeben, die per Push in Ihre Azure Container Registry-Instanz übertragen wurden. Aktualisieren Sie den Befehl mit dem Namen der ACR-Instanz.

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

Ausgabe:

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

Nach Abschluss des Tutorials ist das Containerimage in einer privaten Azure Container Registry-Instanz gespeichert. Dieses Image wird in den nachfolgenden Tutorials aus ACR in einem Service Fabric-Cluster bereitgestellt.

Nächste Schritte

In diesem Tutorial wurden eine Anwendung aus GitHub gepullt sowie Containerimages erstellt und in eine Registrierung gepusht. Die folgenden Schritte wurden durchgeführt:

  • Klonen der Anwendungsquelle von GitHub
  • Erstellen eines Containerimages aus der Anwendungsquelle
  • Bereitstellen einer Azure Container Registry-Instanz (ACR)
  • Kennzeichnen eines Containerimages für ACR
  • Hochladen des Images in die ACR-Instanz

Im nächsten Tutorial erfahren Sie, wie Sie Container mithilfe von Yeoman in eine Service Fabric-Anwendung packen.