Übung: Pushen eines Microserviceimages auf Docker Hub

Abgeschlossen

Damit Kubernetes ein Containerimage erstellen kann, ist ein Speicherort erforderlich, von dem das Image abgerufen werden kann. Docker Hub ist ein zentraler Ort zum Hochladen von Docker-Images. Viele Produkte, einschließlich Kubernetes, können in Docker Hub Container erstellen, die auf Images basieren.

Hinweis

Sie führen diese Übung in einem GitHub-Codespace aus, in dem ein Docker und .NET SDK vorinstalliert sind. Wenn Sie diese Techniken in Ihrer eigenen Entwicklungsumgebung verwenden, stellen Sie sicher, dass diese Voraussetzungen erfüllt sind.

Öffnen der Entwicklungsumgebung

Sie können entweder einen GitHub-Codespace verwenden, der die Übung hostet, oder die Übung lokal in Visual Studio Code durchführen.

Um einen Codespace zu verwenden, erstellen Sie einen vorkonfigurierten GitHub-Codespace über diesen Link zur Codespace-Erstellung erstellen.

Dieser Vorgang dauert mehrere Minuten, während GitHub den Codespace erstellt und konfiguriert. Der für den Rest dieses Moduls verwendete Code befindet sich im Verzeichnis /dotnet-kubernetes.

Um Visual Studio Code zu verwenden, klonen Sie das https://github.com/MicrosoftDocs/mslearn-dotnet-cloudnative-Repository auf Ihrem lokalen Computer. Führen Sie dann folgende Schritte aus:

  1. Installieren Sie alle Systemanforderungen, um Dev Container in Visual Studio Code ausführen zu können.
  2. Achten Sie darauf, dass Docker ausgeführt wird.
  3. Öffnen Sie in einem neuen Visual Studio Code-Fenster den Ordner des geklonten Repositorys
  4. Drücken Sie STRG+UMSCHALT+P, um die Befehlspalette zu öffnen.
  5. Suche: >Dev-Container: In Container neu erstellen und erneut öffnen
  6. Wählen Sie eShopLite - dotnet-kubernetes aus der Dropdownliste aus. Visual Studio Code erstellt Ihren Entwicklungscontainer lokal.

Überprüfen der Docker-Images durch Erstellen von Containern im Codespace

Das Contoso Shop-Projekt enthält zwei Container. Bevor wir die Images per Push auf Docker Hub übertragen, verwenden wir sie, um die Container im Codespace zu erstellen. Nachdem die Container erstellt wurden und ausgeführt werden, können wir die Website des Unternehmens Contoso durchsuchen und überprüfen, ob die Microservices ordnungsgemäß ausgeführt werden.

Führen Sie die folgenden Schritte aus, um Docker-Container im Codespace zu erstellen und auszuführen.

  1. Wechseln Sie zur Registerkarte TERMINAL und führen Sie den folgenden Befehl aus, um zum Stammverzeichnis des Codes zu gelangen:

    cd dotnet-kubernetes
    
  2. Führen Sie den folgenden Befehl aus, um die Container zu erstellen:

    dotnet publish /p:PublishProfile=DefaultContainer
    

    Das Erstellen der Container kann eine Weile dauern.

  3. Führen Sie den folgenden Befehl aus, um die App auszuführen und die Container anzufügen:

    docker compose up
    
  4. Wechseln Sie zum Testen des Front-End-Diensts zur Registerkarte PORTS, und wählen Sie dann rechts neben der lokalen Adresse für den Front-End-Port das Globussymbol aus. Im Browser wird die Homepage angezeigt.

  5. Wählen Sie Produkte aus. Im Katalog werden die Waren von Contoso angezeigt.

  6. Schließen Sie die Website. Kehren Sie zur Registerkarte TERMINAL zurück und drücken Sie dann STRG + C. Docker compose hält die Container an.

Anmelden bei Docker Hub

Der nächste Schritt beim Hochladen der Images auf Docker Hub ist die Anmeldung bei Docker Hub. Geben Sie in der Eingabeaufforderung den folgenden Befehl ein:

docker login

Wichtig

Verwenden Sie den gleichen Benutzernamen und das gleiche Kennwort wie bei der Erstellung Ihres Docker-Kontos. Bei Bedarf können Sie Ihr Kennwort auf der Docker Hub-Website zurücksetzen.

Hochladen der Images auf Docker Hub

  1. Geben Sie den folgenden Code ein, um die Docker-Images, die Sie unter Ihrem Docker-Benutzernamen erstellt haben, mit anderen Tags zu versehen oder umzubenennen:

    docker tag store [YOUR DOCKER USER NAME]/storeimage
    docker tag products [YOUR DOCKER USER NAME]/productservice
    
  2. Laden Sie anschließend die Docker-Images in Docker Hub hoch, indem Sie einen Pushvorgang ausführen.

    docker push [YOUR DOCKER USER NAME]/storeimage
    docker push [YOUR DOCKER USER NAME]/productservice
    

    Wenn Sie einen Authentifizierungsfehler erhalten, können Sie docker logout gefolgt von docker login ausführen, um sich erneut zu authentifizieren.

In dieser Übung haben Sie Dockerfiles und Docker Compose verwendet, um zwei Docker-Images und -Container zu erstellen und diese Images an Docker Hub per Push zu übertragen.

Nun können Sie Kubernetes verwenden, um die Bereitstellung der Microservices von Contoso zu verwalten.