Der Autor des Artikels, dessen Übersetzung wir heute veröffentlichen, sagt, dass er für Entwickler gedacht ist, die Docker Compose lernen möchten und ihre erste Client-Server-Anwendung mit Docker erstellen werden. Der Leser soll mit den Grundlagen von Docker vertraut sein. Wenn dies nicht der Fall ist, können Sie sich
diese Reihe von Materialien,
diese Veröffentlichung, in der die Grundlagen von Docker zusammen mit den Grundlagen von Kubernetes erläutert werden, und
diesen Artikel für Anfänger ansehen.

Was ist Docker Compose?
Docker Compose ist ein in Docker enthaltenes Tool. Es wurde entwickelt, um die Probleme zu lösen, die mit der Bereitstellung von Projekten verbunden sind.
Beim Studium der Grundlagen von Docker sind Sie möglicherweise auf die Erstellung einfacher Anwendungen gestoßen, die unabhängig von beispielsweise externen Datenquellen oder bestimmten Diensten autonom arbeiten. In der Praxis sind solche Anwendungen selten. Reale Projekte umfassen normalerweise eine ganze Reihe von kollaborativen Anwendungen.
Woher wissen Sie, ob Sie Docker Compose beim Bereitstellen eines Projekts verwenden müssen? In der Tat - sehr einfach. Wenn mehrere Dienste verwendet werden, um das Funktionieren dieses Projekts sicherzustellen, kann Docker Compose hilfreich sein. Zum Beispiel in einer Situation, in der sie eine Website erstellen, die zur Authentifizierung von Benutzern eine Verbindung zur Datenbank herstellen muss. Ein ähnliches Projekt kann aus zwei Diensten bestehen - einem, der die Site bereitstellt, und einem, der für die Pflege der Datenbank verantwortlich ist.
Wenn die Docker Compose-Technologie vereinfacht beschrieben wird, können mit einem einzigen Befehl viele Dienste gestartet werden.
Unterschied zwischen Docker und Docker Compose
Docker wird verwendet, um die einzelnen Container (Dienste) zu verwalten, aus denen die Anwendung besteht.
Docker Compose wird verwendet, um mehrere Container, aus denen die Anwendung besteht, gleichzeitig zu verwalten. Dieses Tool bietet dieselben Funktionen wie Docker, ermöglicht Ihnen jedoch die Arbeit mit komplexeren Anwendungen.
Docker (einzelner Container) und Docker Compose (mehrere Container)Typischer Anwendungsfall für Docker Compose
Docker Compose ist in den richtigen Händen ein sehr leistungsfähiges Tool, mit dem Sie Anwendungen mit einer komplexen Architektur schnell bereitstellen können. Jetzt sehen wir uns ein Beispiel für die praktische Verwendung von Docker Compose an, dessen Analyse es Ihnen ermöglicht, die Vorteile zu bewerten, die Sie mit Docker Compose erzielen.
Stellen Sie sich vor, Sie sind Entwickler eines Webprojekts. Dieses Projekt umfasst zwei Websites. Mit dem ersten können Geschäftsleute mit nur wenigen Klicks Online-Shops erstellen. Die zweite zielt auf die Kundenbetreuung ab. Diese beiden Sites interagieren mit derselben Datenbank.
Ihr Projekt wird immer beliebter und es stellt sich heraus, dass die Leistung des Servers, auf dem es arbeitet, nicht mehr ausreicht. Infolgedessen beschließen Sie, das gesamte Projekt auf einen anderen Computer zu übertragen.
Leider haben Sie so etwas wie Docker Compose nicht verwendet. Daher müssen Sie die Dienste einzeln übertragen und neu konfigurieren, in der Hoffnung, dass Sie bei dieser Arbeit nichts vergessen.
Wenn Sie Docker Compose verwenden, können Sie Ihr Projekt auf einen neuen Server übertragen, indem Sie mehrere Befehle ausführen. Um die Übertragung des Projekts an einen neuen Ort abzuschließen, müssen Sie nur einige Einstellungen vornehmen und eine Sicherungskopie der Datenbank auf den neuen Server hochladen.
Entwickeln einer Client-Server-Anwendung mit Docker Compose
Jetzt, da Sie wissen, wofür wir Docker Compose verwenden werden, ist es Zeit, Ihre erste Client-Server-Anwendung mit diesem Tool zu erstellen. Wir sprechen nämlich über die Entwicklung einer kleinen Website (Server) in Python, die eine Datei mit einem Textfragment erzeugen kann. Diese Datei wird vom Server von einem Programm (Client) angefordert, das ebenfalls in Python geschrieben ist. Nach dem Empfang der Datei vom Server zeigt das Programm den darin gespeicherten Text auf dem Bildschirm an.
Bitte beachten Sie, dass wir erwarten, dass Sie die Grundlagen von Docker besitzen und dass Sie die Docker-Plattform bereits installiert haben.
Lassen Sie uns an dem Projekt arbeiten.
▍1. Projekterstellung
Um Ihre erste Client-Server-Anwendung zu erstellen, empfehle ich, zunächst einen Projektordner zu erstellen. Es sollte die folgenden Dateien und Ordner enthalten:
docker-compose.yml
. Dies ist eine Docker Compose-Datei, die die Anweisungen zum Starten und Konfigurieren von Diensten enthält.- Serverordner. Es enthält die Dateien, die für den Betrieb des Servers erforderlich sind.
- Ordner-
client
. Hier werden die Dateien der Client-Anwendung angezeigt.
Daher sollte der Inhalt des Hauptordners Ihres Projekts folgendermaßen aussehen:
. ├── client/ ├── docker-compose.yml └── server/ 2 directories, 1 file
▍2. Servererstellung
Hier werden wir beim Erstellen des Servers einige grundlegende Dinge in Bezug auf Docker ansprechen.
2a. Dateierstellung
Gehen Sie zum Serverordner und erstellen Sie die folgenden Dateien darin:
server.py
Datei. Es wird den Servercode enthalten.index.html
Datei. Diese Datei enthält einen Text, den die Clientanwendung anzeigen soll.Dockerfile
Datei. Dies ist eine Docker-Datei, die die Anweisungen zum Erstellen einer Serverumgebung enthält.
So sollte der Inhalt Ihres
server/
Ordners aussehen:
. ├── Dockerfile ├── index.html └── server.py 0 directories, 3 files
2b. Bearbeiten einer Python-Datei.
Fügen Sie der Datei
server.py
den folgenden Code
server.py
:
Mit diesem Code können Sie einen einfachen Webserver erstellen. Es gibt Clients die Datei
index.html
, deren Inhalt später auf der Webseite angezeigt wird.
2c. Bearbeitung von HTML-Dateien
Fügen Sie der Datei
index.html
den folgenden Text hinzu:
Docker-Compose is magic!
Dieser Text wird an den Kunden übermittelt.
2d. Dockerfile bearbeiten
Jetzt erstellen wir eine einfache
Dockerfile
, die für die Organisation der Laufzeit des Python-Servers verantwortlich ist. Wir werden das
offizielle Image für die Ausführung von in Python geschriebenen Programmen als Grundlage für das erstellte Image verwenden. Hier ist der Inhalt der Docker-Datei:
Lassen Sie uns nun am Client arbeiten.
▍3. Kundenerstellung
Beim Erstellen des Client-Teils unseres Projekts werden wir uns gleichzeitig an einige der Grundlagen von Docker erinnern.
3a. Dateierstellung
Wechseln Sie in den Ordner Ihres
client
Projekts und erstellen Sie die folgenden Dateien darin:
- Die Datei
client.py
. Dies ist der Client-Code. Dockerfile
Datei. Diese Datei spielt dieselbe Rolle wie eine ähnliche Datei im Serverordner. Es enthält nämlich Anweisungen, die die Erstellung einer Umgebung zum Ausführen von Clientcode beschreiben.
Daher sollte Ihr
client/
Ordner in dieser Arbeitsphase folgendermaßen aussehen:
. ├── client.py └── Dockerfile 0 directories, 2 files
3b. Bearbeitung von Python-Dateien
Fügen Sie der Datei
client.py
den folgenden Code
client.py
:
Dank dieses Codes kann die Clientanwendung Daten vom Server herunterladen und auf dem Bildschirm anzeigen.
3c. Dockerfile bearbeiten
Wie beim Server erstellen wir eine einfache
Dockerfile
für den Client, die für die Erstellung der Umgebung verantwortlich ist, in der die Client-Python-Anwendung funktioniert. Hier ist der Client-
Dockerfile
Code:
▍4. Docker komponieren
Wie Sie vielleicht bemerkt haben, haben wir zwei verschiedene Projekte erstellt: den Server und den Client. Jeder von ihnen hat seine eigene
Dockerfile
. Bisher geht alles, was passiert, nicht über die Grundlagen der Arbeit mit Docker hinaus. Jetzt fangen wir mit Docker Compose an. Dazu wenden wir uns der Datei
docker-compose.yml
, die sich im Stammordner des Projekts befindet.
Bitte beachten Sie, dass wir hier nicht versuchen, absolut alle Befehle zu berücksichtigen, die in
docker-compose.yml
. Unser Hauptziel ist es, Ihnen ein praktisches Beispiel zu geben, das Ihnen Grundkenntnisse in Docker Compose vermittelt.
Hier ist der Code, der in die
docker-compose.yml
:
▍5. Projektmontage
Nachdem alle erforderlichen Anweisungen in
docker-compose.yml
, muss das Projekt zusammengestellt werden. Dieser Schritt unserer Arbeit ähnelt der Verwendung des
docker build
, der entsprechende Befehl bezieht sich jedoch auf mehrere Dienste:
$ docker-compose build
▍6. Projektstart
Nachdem das Projekt abgeschlossen ist, ist es Zeit, es zu starten. Dieser Schritt unserer Arbeit entspricht dem Schritt, in dem bei der Arbeit mit einzelnen Containern der Befehl
docker run
ausgeführt wird:
$ docker-compose up
Nach Ausführung dieses Befehls sollte das Terminal den vom Client vom Server heruntergeladenen Text anzeigen:
Docker-Compose is magic!
.
Wie bereits erwähnt, verwendet der Server den Computerport
1234
, um Clientanforderungen zu bedienen. Wenn Sie zum Browser unter
http: // localhost: 1234 / gehen , wird daher eine Seite mit dem Text
Docker-Compose is magic!
angezeigt
Docker-Compose is magic!
.
Nützliche Befehle
Schauen wir uns einige der Befehle an, die Sie bei der Arbeit mit Docker Compose möglicherweise nützlich finden.
Mit diesem Befehl können Sie Container und andere Ressourcen stoppen und löschen, die mit dem
docker-compose up
:
$ docker-compose down
Dieser Befehl zeigt die Dienstprotokolle an:
$ docker-compose logs -f [service name]
In unserem Projekt kann es beispielsweise in der folgenden Form verwendet werden:
$ docker-compose logs -f [service name]
.
Mit diesem Befehl können Sie die Container auflisten:
$ docker-compose ps
Mit diesem Befehl können Sie einen Befehl in einem ausführenden Container ausführen:
$ docker-compose exec [service name] [command]
Zum Beispiel könnte es so aussehen:
docker-compose exec server ls
.
Mit diesem Befehl können Sie eine Liste von Bildern anzeigen:
$ docker-compose images
Zusammenfassung
Wir haben die Grundlagen der Arbeit mit der Docker Compose-Technologie untersucht, deren Wissen es Ihnen ermöglicht, diese Technologie zu verwenden und auf Wunsch mit dem tieferen Studium zu beginnen.
Hier ist das Repository mit dem Projektcode, den wir hier überprüft haben.
Liebe Leser! Verwenden Sie Docker Compose in Ihren Projekten?
