Zurück zum Blog

So installieren und konfigurieren Sie Docker Compose auf Ubuntu 20.04

So installieren und konfigurieren Sie Docker Compose auf Ubuntu 20.04

Einführung

Containerisierung hat in den letzten Jahren im Software-Tech-Bereich stark an Dynamik gewonnen. Dies ist auf Docker zurückzuführen, eine Container-Plattform, die die Verwaltung von Prozessen in Containern vereinfacht.

Container sind leichtgewichtige, virtualisierte, portable, softwaredefinierte standardisierte Umgebungen, die es der Software ermöglichen, isoliert von anderer Software auf dem physischen Host-Rechner zu laufen. Diese Portabilitätsfunktion ermöglicht es Entwicklern, ihre Anwendungen in isolierte Dienste zu modularisieren. Darüber hinaus können sie unabhängig voneinander bereitgestellt werden, was Raum für Skalierung bietet.

Die Aufteilung einer Anwendung in mehrere Dienste ist zwar definitiv großartig, bringt jedoch den Aufwand für die Verwaltung mehrerer Container mit sich. Sie müssen sicherstellen, dass sie kommunizieren, gleichzeitig starten und herunterfahren. Dank eines Tools namens Docker Compose wird dies zu einer einfachen Aufgabe. Docker Compose ermöglicht es Entwicklern, Multi-Container-Docker-Anwendungen mithilfe von Regeln auszuführen, die in einer YAML-Datei definiert sind. Die YAML-Datei enthält Definitionen für die Anwendungsdienste und wie diese Daten-Volumes und Netzwerke gemeinsam nutzen können. Sobald Sie die Dienste definiert haben, können Sie alle mit einem einzigen Befehl starten. In diesem Tutorial zeigen wir Ihnen, wie Sie Docker Compose auf Ubuntu 20.04 installieren, konfigurieren und damit erste Schritte machen.

Voraussetzungen

Schritt 1: Installation von Docker Compose

Wir werden die neueste stabile Version von Docker Compose aus dem offiziellen GitHub-Repository herunterladen. Die neueste Version finden Sie auf der Releases-Seite, zum Zeitpunkt der Erstellung dieses Tutorials ist die neueste Version 1.28.5.

Melden Sie sich zuerst mit dem Nicht-Root-Sudo-Benutzer an Ihrem Ubuntu-Server an und geben Sie den folgenden Befehl ein. Er lädt das neueste Release (1.28.5) herunter und speichert die ausführbare Datei im Verzeichnis /usr/local/bin/docker-compose. Dadurch ist sie global als docker-compose zugänglich:

Geben Sie nach dem Herunterladen den folgenden Befehl ein, um die entsprechenden Berechtigungen festzulegen, damit der Befehl docker-compose ausführbar ist:

Überprüfen Sie nun, ob die Installation erfolgreich war und der Befehl aufgerufen werden kann, indem Sie den folgenden Befehl ausführen:

Sie sollten eine Ausgabe wie diese erhalten:

docker compose version

Dies bestätigt, dass Docker Compose erfolgreich auf Ihrem System installiert wurde.

Schritt 2: Erstellen der Datei docker-compose.yml

Um Ihnen zu helfen zu verstehen, wie man mit docker-compose.yml, arbeitet, werden wir eine Webserver-Umgebung mit dem offiziellen Nginx-Image von Docker Hub konfigurieren. Nach der Bereitstellung sollten wir in der Lage sein, eine einfache HTML-Seite aus dem Container bereitzustellen.

Wir werden unser Arbeitsverzeichnis im Home-Ordner erstellen, von dem aus wir arbeiten werden. Geben Sie den folgenden Befehl ein, um das Verzeichnis zu erstellen:

Wechseln Sie als Nächstes in das Verzeichnis:

Erstellen Sie im Verzeichnis einen Anwendungsordner, der das Dokumenten-Root für die Nginx-Umgebung sein wird. Wir können diesen Ordner app:

  • Erstellen einer HTML-Seite

Lassen Sie uns den Texteditor nano verwenden, um die Datei index.html im Ordner app zu erstellen:

Fügen Sie als Nächstes den folgenden HTML-Code in die Datei ein:

Um die Datei zu speichern, drücken Sie STRG + O, ENTER. Schließen Sie sie dann mit STRG + X. Als Nächstes erstellen wir die docker-compose.yml-Datei in unserem Projekt-Root-Verzeichnis.

  • Hosten der HTML-Seite mit docker-compose

Geben Sie als Nächstes den folgenden Befehl ein, um die Datei mit dem nano-Editor zu öffnen:

Fügen Sie danach das folgende Code-Snippet in die Datei ein:

Die docker-compose.yml Die Datei beginnt mit der Versionsnummer, die Docker Compose mitteilt, welche Konfigurationsversion wir verwenden. Bitte folgen Sie diesem Link, um mehr über Docker Compose-Versionierung.

Nach der Versionsnummer folgt der Services-Block, der die Dienste enthält, aus denen die Umgebung besteht. In diesem Tutorial haben wir nur einen einzigen Dienst namens webserver. Der webserver-Dienst verwendet das nginx:alpine-Image. Wir haben auch die Portweiterleitung definiert 8000:80. Das bedeutet, dass alle Anfragen von Port 8000 auf dem Host-Rechner an den Webserver-Container auf Port 80 weitergeleitet werden, auf dem Nginx läuft.

Die Volumes-Direktive ermöglicht es Ihnen, ein gemeinsames Volume zwischen dem Host-Rechner und dem Container zu erstellen, das wir zur persistenten Datenspeicherung verwenden können. In unserem yml-Code-Snippet teilen wir den lokalen app-Ordner mit dem Container. Innerhalb des Containers wird er im Verzeichnis /usr/share/nginx/html abgelegt. Daher überschreibt er das Standard-Dokumentenverzeichnis für Nginx. Sie können die Datei nun speichern und schließen.

Bis zu diesem Punkt haben Sie Ihre Beispiel-HTML-Webseite und die Datei docker-compose.yml mit den Anweisungen zum Erstellen einer containerisierten Webserver-Umgebung erstellt. Sehen wir uns im nächsten Schritt an, wie wir dieses Setup starten können.

Schritt 3: Ausführen des Docker Compose-Befehls

In diesem Schritt führen wir den Befehl aus, um unsere containerisierte Umgebung zu starten. Unten sehen Sie den einzelnen Befehl, der den Download-Prozess der Docker-Images initiiert, einen Container für den Webserver-Dienst erstellt und die containerisierte Umgebung im Hintergrund startet:

Docker ist so konzipiert, dass es schnell und effizient ist. Wenn Sie also den obigen Befehl ausführen, prüft es zuerst Ihr lokales System auf das definierte Image. Wenn es fehlt, wird es aus dem Docker Hub-Repository abgerufen. Es sollte eine Ausgabe ähnlich dieser angezeigt werden:

 compose up

Wenn die Ausführung des Befehls abgeschlossen ist, wird die Container-Umgebung im Hintergrund gestartet. Sie können mit folgendem Befehl überprüfen, ob sie läuft:

Sie sollten eine ähnliche Ausgabe erhalten:

 compose ps

Wenn Sie zur IP-Adresse oder zum Domainnamen Ihres Servers navigieren und den Port 8000 hinzufügen, d. h. server_domain_or_IP:8000 sollten Sie die von uns erstellte Beispiel-HTML-Seite sehen können:

docker compose webpage

Wenn Sie sich erinnern, haben wir ein gemeinsames Volume zwischen dem Container und dem Host-System eingerichtet. Dadurch bleiben die Dateien im Container mit den Dateien auf dem Host-System synchronisiert. Wenn Sie also eine Änderung an der index.html-Datei vornehmen, wird diese automatisch mit dem Container synchronisiert und beim Neuladen der Seite im Browser angezeigt. Sie können es mit dem Nano-Editor ausprobieren. Lernen wir im nächsten Schritt weitere Befehle kennen.

Schritt 4: Zusätzliche Docker Compose-Befehle zur Verwaltung von Container-Umgebungen

Nachdem Sie nun erfolgreich eine Webseite mit dem einzigen Befehl docker-compose-up bereitgestellt haben, sehen wir uns einige zusätzliche Befehle an, die bei der Verwaltung von containerisierten Umgebungen nützlich sein können.

Wir beginnen mit dem Befehl logs. Protokolle können bei der Behebung von Anwendungsfehlern von entscheidender Bedeutung sein. Führen Sie zunächst den folgenden Befehl aus, um die vom Nginx-Container erzeugten Protokolle anzuzeigen:

Hier ist eine Beispielausgabe der Protokolle:

 logs

Sie können die Ausführung der Umgebung anhalten, ohne den Zustand der Container zu ändern, indem Sie folgenden Befehl verwenden:

 compose pause

Um die Ausführung wieder aufzunehmen, verwenden Sie den Befehl:

docker compose unpause

Möglicherweise möchten Sie die Container stoppen, ohne deren Daten zu löschen. Verwenden Sie dazu den folgenden Befehl:

stop

Um die Container, Netzwerke und Volumes zu löschen, die mit der containerisierten Umgebung verknüpft sind, verwenden Sie den Befehl:

docker compose down

Denken Sie daran, dass der obige Befehl die von Docker Compose zum Starten der Umgebung verwendeten Basis-Images nicht entfernt. Dies sorgt für schnellere Builds, wenn Sie Ihre Umgebung starten, da auf dem lokalen Rechner nach passenden Images gesucht wird. Wenn Sie das Basis-Image vollständig entfernen möchten, müssen Sie dies im Befehl angeben. Für unser Beispiel können wir das nginx:alpine-Image mit dem Befehl entfernen:

 image remove

Schließlich finden Sie weitere Befehle in der offiziellen Docker Compose-Befehlszeilenreferenz-Dokumentation.

Fazit

In diesem Tutorial haben Sie Docker Compose auf Ubuntu 20.04 installiert, eine containerisierte Umgebung basierend auf einem Nginx-Webserver-Image erstellt und gelernt, wie Sie die verschiedenen Dienste mit Docker Compose-Befehlen verwalten.

Wenn Sie erfahren möchten, wie Sie eine reale dynamische Anwendung bereitstellen, die von mehreren Containern abhängt, lesen Sie bitte unser Tutorial über Bereitstellung von Laravel, Nginx und MySQL mit Docker Compose. Eine vollständige Liste der docker-compose-Befehle finden Sie auch in der offiziellen Docker Compose-Dokumentation.

Happy Computing!

author

Pranay Kapgate

Autor · CloudSigma

Preslav Dobrev ist ein kreativer Designer bei CloudSigma und konzentriert sich auf eine konsistente Unternehmensidentität durch traditionelle und innovative Marketingkanäle. Er versteht es meisterhaft, künstlerische Vision mit strategischem Marketing zu verbinden, um wirkungsvolle Markengeschichten zu schaffen.

Kommentare

Noch keine Kommentare. Schreiben Sie den ersten.