Verwendung des docker compose unpause Befehls zum Fortsetzen von Services

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

In diesem Lab lernen Sie, wie Sie den Befehl docker compose unpause verwenden, um pausierte Dienste fortzusetzen. Wir beginnen mit der Erstellung einer einfachen docker-compose.yml-Datei, die einen grundlegenden Webdienst mit dem Nginx-Image definiert.

Nach der Einrichtung starten Sie die Dienste mit docker compose up, pausieren sie dann mit docker compose pause und setzen sie schließlich mit docker compose unpause fort. Sie überprüfen anschließend, ob die Dienste korrekt ausgeführt werden. Diese praktische Übung demonstriert die Anwendung des Pausierens und Fortsetzens von Docker Compose-Diensten.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/run -.-> lab-555095{{"Verwendung des docker compose unpause Befehls zum Fortsetzen von Services"}} docker/ps -.-> lab-555095{{"Verwendung des docker compose unpause Befehls zum Fortsetzen von Services"}} docker/pull -.-> lab-555095{{"Verwendung des docker compose unpause Befehls zum Fortsetzen von Services"}} end

Erstellen einer einfachen docker-compose.yml-Datei

In diesem Schritt erstellen wir eine grundlegende docker-compose.yml-Datei. Diese Datei ist das Herzstück von Docker Compose und definiert die Services, Netzwerke und Volumes für Ihre Anwendung. Bevor wir beginnen, müssen wir Docker Compose installieren, da es in dieser Umgebung nicht vorinstalliert ist.

Zuerst installieren wir Docker Compose. Wir laden die neueste stabile Version herunter und machen sie ausführbar.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Nun überprüfen wir die Installation, indem wir die Version anzeigen lassen.

docker-compose --version

Sie sollten die Versionsinformationen in der Konsole sehen, was bestätigt, dass Docker Compose korrekt installiert wurde.

Wechseln Sie nun in das Verzeichnis ~/project, das Ihr Arbeitsverzeichnis für dieses Lab ist.

cd ~/project

Jetzt erstellen wir in diesem Verzeichnis eine Datei namens docker-compose.yml. Diese Datei definiert einen einfachen Service mit dem nginx-Image. Wir verwenden den nano-Editor, um die Datei zu erstellen und zu bearbeiten.

nano docker-compose.yml

Fügen Sie im nano-Editor folgenden Inhalt ein:

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Lassen Sie uns diese docker-compose.yml-Datei im Detail betrachten:

  • version: '3.8' gibt die Version des Docker Compose-Dateiformats an.
  • services: definiert die verschiedenen Services, aus denen Ihre Anwendung besteht.
  • web: ist der Name unseres Services. Sie können Ihre Services beliebig benennen.
  • image: nginx:latest spezifiziert das Docker-Image, das für diesen Service verwendet wird. Hier verwenden wir die neueste Version des offiziellen Nginx-Images. Da dieses Image möglicherweise nicht lokal vorhanden ist, wird Docker Compose es automatisch von Docker Hub herunterladen, wenn Sie den Service starten.
  • ports: bildet Ports zwischen dem Host-Rechner und dem Container ab. "80:80" bildet Port 80 auf dem Host auf Port 80 im Container ab. Das bedeutet, Sie können auf den im Container laufenden Nginx-Webserver zugreifen, indem Sie http://localhost (oder die IP-Adresse der VM) auf Ihrem Host-Rechner aufrufen.

Nachdem Sie den Inhalt eingefügt haben, speichern Sie die Datei mit Strg + O, bestätigen Sie den Dateinamen mit Enter und beenden Sie den nano-Editor mit Strg + X.

Sie haben nun erfolgreich Ihre erste docker-compose.yml-Datei erstellt. Im nächsten Schritt werden wir diese Datei verwenden, um den Nginx-Service zu starten.

Services mit docker compose up starten

In diesem Schritt verwenden wir den Befehl docker-compose up, um die in unserer docker-compose.yml-Datei definierten Services zu starten. Dieser Befehl erstellt, (re)kreiert, startet und verbindet sich mit den Containern für einen Service.

Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden, wo Sie im vorherigen Schritt die docker-compose.yml-Datei erstellt haben.

cd ~/project

Führen Sie nun folgenden Befehl aus, um den Nginx-Service zu starten:

docker-compose up -d

Lassen Sie uns den Befehl näher betrachten:

  • docker-compose up startet die in der docker-compose.yml-Datei definierten Services.
  • -d führt die Container im Detached-Modus aus, was bedeutet, dass sie im Hintergrund laufen und Ihr Terminal nicht blockieren.

Wenn Sie diesen Befehl zum ersten Mal ausführen, wird Docker Compose das nginx:latest-Image von Docker Hub herunterladen, falls es nicht bereits auf Ihrem System vorhanden ist. Sie sehen eine Ausgabe, die den Download des Images sowie die Erstellung und den Start des Containers anzeigt.

Um zu überprüfen, ob der Container läuft, können Sie den Befehl docker ps verwenden.

docker ps

Sie sollten einen Eintrag für den web-Service (oder einen ähnlichen Namen basierend auf Ihrem Verzeichnis und Servicenamen) mit dem Status Up sehen. Dies zeigt an, dass der Nginx-Container läuft.

Sie können auch überprüfen, ob der Nginx-Webserver erreichbar ist, indem Sie curl verwenden, um auf den freigegebenen Port 80 zuzugreifen.

curl http://localhost:80

Sie sollten die HTML-Ausgabe der standardmäßigen Nginx-Willkommensseite in Ihrem Terminal sehen. Dies bestätigt, dass der Nginx-Server im Container läuft und über den zugeordneten Port von Ihrem Host-Rechner aus erreichbar ist.

Services mit docker compose pause anhalten

In diesem Schritt lernen wir, wie man laufende Services mit dem Befehl docker-compose pause pausiert. Das Pausieren eines Containers unterbricht vorübergehend alle seine Prozesse. Dies unterscheidet sich vom Stoppen eines Containers, bei dem die Prozesse beendet werden.

Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden, wo sich Ihre docker-compose.yml-Datei befindet und Ihre Services laufen.

cd ~/project

Führen Sie nun folgenden Befehl aus, um den web-Service zu pausieren:

docker-compose pause web

Sie sollten eine Ausgabe sehen, die anzeigt, dass der web-Service pausiert wird.

Um zu überprüfen, ob der Container pausiert ist, können Sie den Befehl docker ps verwenden.

docker ps

Suchen Sie in der Spalte STATUS nach dem web-Service-Container. Dort sollte nun ein Status wie Up ... (Paused) angezeigt werden. Dies bestätigt, dass die Prozesse des Containers angehalten sind.

Während der Container pausiert ist, verarbeitet der Nginx-Webserver darin keine Anfragen aktiv. Wenn Sie versuchen, mit curl darauf zuzugreifen, wird die Anfrage wahrscheinlich hängen bleiben oder einen Timeout verursachen, da der Server nicht antwortet.

curl http://localhost:80

Dieser Befehl gibt nicht sofort die Nginx-Willkommensseite zurück wie zuvor, als der Container lief. Sie müssen möglicherweise nach einer Weile Strg + C drücken, um den Befehl abzubrechen.

Das Pausieren ist nützlich, wenn Sie einen Service vorübergehend anhalten möchten, ohne seinen aktuellen Zustand zu verlieren.

Services mit docker compose unpause fortsetzen

In diesem Schritt setzen wir die Ausführung des pausierten Services mit dem Befehl docker-compose unpause fort. Dieser Befehl hebt die Pausierung von Containern auf.

Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden, wo sich Ihre docker-compose.yml-Datei befindet.

cd ~/project

Führen Sie nun folgenden Befehl aus, um den web-Service fortzusetzen:

docker-compose unpause web

Sie sollten eine Ausgabe sehen, die anzeigt, dass der web-Service fortgesetzt wird.

Um zu überprüfen, ob der Container nicht mehr pausiert ist und normal läuft, können Sie erneut den Befehl docker ps verwenden.

docker ps

Beobachten Sie die Spalte STATUS für den web-Service-Container. Dort sollte nun ein Status wie Up ... ohne den (Paused)-Hinweis angezeigt werden. Dies bedeutet, dass die Prozesse des Containers fortgesetzt wurden.

Nach dem Fortsetzen sollte der Nginx-Webserver im Container wieder Anfragen verarbeiten. Sie können dies bestätigen, indem Sie mit curl auf den freigegebenen Port 80 zugreifen.

curl http://localhost:80

Diesmal sollten Sie sofort die HTML-Ausgabe der standardmäßigen Nginx-Willkommensseite erhalten, genau wie nach dem ersten Start des Containers. Dies bestätigt, dass der Service wieder vollständig betriebsbereit ist.

Das Fortsetzen ist das Gegenstück zum Pausieren und ermöglicht es Ihnen, einen Service schnell aus seinem angehaltenen Zustand wieder aufzunehmen.

Überprüfung der laufenden Services nach Fortsetzung

In diesem Schritt führen wir eine abschließende Überprüfung durch, um sicherzustellen, dass der Nginx-Service nach der Fortsetzung voll funktionsfähig ist. Während wir im vorherigen Schritt den Container-Status überprüft haben, ist es gute Praxis zu bestätigen, dass die Anwendung im Container wie erwartet reagiert.

Stellen Sie sicher, dass Sie sich im Verzeichnis ~/project befinden.

cd ~/project

Wir verwenden erneut den curl-Befehl, um auf den Nginx-Webserver zuzugreifen, der auf Port 80 läuft.

curl http://localhost:80

Sie sollten den HTML-Inhalt der standardmäßigen Nginx-Willkommensseite in Ihrem Terminal sehen. Dies bestätigt, dass der Nginx-Prozess im Container läuft und Inhalte bereitstellt.

Dieser Schritt verdeutlicht, dass das Fortsetzen eines Containers der darin laufenden Anwendung ermöglicht, ihren normalen Betrieb wieder aufzunehmen.

Abschließend können Sie mit dem Befehl docker-compose down den laufenden Container und das von Docker Compose erstellte Netzwerk bereinigen. Dieser Befehl stoppt und entfernt Container, Netzwerke und Volumes, die durch up erstellt wurden.

docker-compose down

Sie sehen eine Ausgabe, die anzeigt, dass der Service und das Netzwerk gestoppt und entfernt werden.

Um zu bestätigen, dass der Container nicht mehr läuft, können Sie docker ps verwenden.

docker ps

Die Ausgabe sollte keine laufenden Container anzeigen, was bestätigt, dass der Nginx-Service erfolgreich gestoppt und entfernt wurde.

Zusammenfassung

In diesem Lab haben wir gelernt, wie man Docker Compose zur Verwaltung des Lebenszyklus von Services einsetzt. Wir begannen mit der Installation von Docker Compose und der Erstellung einer docker-compose.yml-Datei zur Definition eines einfachen Nginx-Services.

Anschließend verwendeten wir docker compose up zum Starten des definierten Services, docker compose pause zum temporären Anhalten der Service-Prozesse und schließlich docker compose unpause zum Fortsetzen des pausierten Services. Wir überprüften den Status des Services nach jedem Schritt und demonstrierten damit die praktische Anwendung dieser Docker Compose Befehle zur Steuerung der Service-Ausführung.