Erstellen eines einfachen Docker Compose Projekts
Nachdem Docker Compose ordnungsgemäß installiert ist und funktioniert, erstellen wir ein einfaches Projekt, um unser Setup zu testen. Wir erstellen eine einfache Webanwendung mit einem Webserver und einer Redis-Datenbank.
Projektverzeichnis erstellen
Erstellen wir zunächst ein dediziertes Verzeichnis für unser Projekt:
mkdir ~/project/docker-compose-test
cd ~/project/docker-compose-test
Eine Docker Compose Datei erstellen
Erstellen wir nun eine Datei docker-compose.yml
mit dem Texteditor nano
:
nano docker-compose.yml
Kopieren Sie den folgenden Inhalt und fügen Sie ihn in die Datei ein:
version: "3"
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html
redis:
image: redis:alpine
Diese Docker Compose Datei definiert zwei Services:
web
: Ein Nginx Webserver, der Inhalte aus einem lokalen Verzeichnis bereitstellt
redis
: Eine Redis-Datenbank zum Caching oder zur Speicherung von Sitzungsdaten
Drücken Sie Ctrl+O
gefolgt von Enter
, um die Datei zu speichern, und drücken Sie dann Ctrl+X
, um nano zu beenden.
HTML-Inhalt erstellen
Erstellen wir eine einfache HTML-Seite, die unser Web-Service bereitstellen soll:
mkdir -p html
nano html/index.html
Kopieren Sie den folgenden Inhalt und fügen Sie ihn in die Datei ein:
<!DOCTYPE html>
<html>
<head>
<title>Docker Compose Test</title>
</head>
<body>
<h1>Hello from Docker Compose!</h1>
<p>If you can see this, your Docker Compose setup is working correctly.</p>
</body>
</html>
Drücken Sie Ctrl+O
gefolgt von Enter
, um die Datei zu speichern, und drücken Sie dann Ctrl+X
, um nano zu beenden.
Das Docker Compose Projekt ausführen
Starten wir nun unser Docker Compose Projekt:
docker-compose up -d
Das Flag -d
führt die Container im Hintergrund aus (detached mode). Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Creating network "docker-compose-test_default" with the default driver
Pulling web (nginx:alpine)...
Pulling redis (redis:alpine)...
[...]
Creating docker-compose-test_web_1 ... done
Creating docker-compose-test_redis_1 ... done
Überprüfen, ob die Services ausgeführt werden
Überprüfen wir, ob unsere Services korrekt ausgeführt werden:
docker-compose ps
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Name Command State Ports
------------------------------------------------------------------------------------
docker-compose-test_redis_1 docker-entrypoint.sh redis ... Up 6379/tcp
docker-compose-test_web_1 /docker-entrypoint.sh ngin ... Up 0.0.0.0:8080->80/tcp
Auf die Webanwendung zugreifen
Sie können jetzt auf die Webanwendung zugreifen, indem Sie einen Webbrowser in der LabEx-Oberfläche öffnen und zu http://localhost:8080
navigieren. Sie sollten die Meldung "Hello from Docker Compose!" sehen.
Alternativ können Sie curl
verwenden, um den Webserver über die Befehlszeile zu überprüfen:
curl http://localhost:8080
Sie sollten den zuvor erstellten HTML-Inhalt sehen.
Das Docker Compose Projekt stoppen
Wenn Sie mit dem Testen fertig sind, können Sie das Docker Compose Projekt stoppen:
docker-compose down
Sie sollten eine Ausgabe ähnlich der folgenden sehen:
Stopping docker-compose-test_web_1 ... done
Stopping docker-compose-test_redis_1 ... done
Removing docker-compose-test_web_1 ... done
Removing docker-compose-test_redis_1 ... done
Removing network docker-compose-test_default
Herzlichen Glückwunsch! Sie haben Docker Compose erfolgreich installiert, den Fehler "command not found" behoben und Ihr Setup mit einer einfachen Multi-Container-Anwendung getestet.