Dies ist ein maschinell übersetzter Text, der Fehler enthalten kann!
Docker vereinfacht die Bereitstellung von Anwendungen. Anstatt Software manuell auf einem Server zu installieren und zu konfigurieren, definieren Sie alles in Konfigurationsdateien. Das Ergebnis ist reproduzierbar, portabel und schnell einzurichten.
Was ist Docker Compose?
Mit Docker Compose definieren Sie mehrere Dienste in einer Datei (docker-compose.yml). Jeder Dienst ist ein Container mit seiner eigenen Konfiguration.
services:
web:
image: nginx:latest
ports:
- "80:80"
grafana:
image: grafana/grafana:latest
ports:
- "3000:3000"
Ein Befehl richtet alles ein:
docker compose up -d
# Starter alle tjenester i bakgrunnen.
# Startet alle Dienste im Hintergrund.
Benötigen Sie, den Dienst auf einen anderen Server zu verschieben? Kopieren Sie die Datei und führen Sie denselben Befehl aus. Alles ist identisch.
Warum ist das Automatisierung?
Denken Sie über den Unterschied nach:
| Manuelle Einrichtung | Mit Docker Compose |
|---|---|
| Nginx manuell installieren | image: nginx:latest |
| Ports konfigurieren | ports: "80:80" |
| Grafana manuell installieren | image: grafana/grafana:latest |
| Alle Schritte dokumentieren | Alles ist in der .yml-Datei dokumentiert |
| Alles auf dem nächsten Server wiederholen | docker compose up -d |
Die Docker Compose-Datei ist die Dokumentation. Sie beschreibt genau, welche Dienste ausgeführt werden, welche Ports sie verwenden und wie sie konfiguriert sind.
Nützliche Docker-Befehle
| Befehl | Was er tut |
|---|---|
docker compose up -d | Startet alle Dienste im Hintergrund |
docker compose down | Stoppt und entfernt alle Container |
docker compose logs -f | Verfolgt die Logs in Echtzeit |
docker compose pull | Holt die neueste Version aller Images |
docker compose restart | Startet alle Dienste neu |
docker ps | Zeigt laufende Container |
Volumes: Daten außerhalb des Containers speichern
Container sind temporär. Wenn Sie einen Container löschen, geht der gesamte Inhalt verloren. Um Daten zu erhalten, verwenden wir Volumes:
services:
database:
image: postgres:16
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: hemmelig # Geheimes Passwort
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
Hier werden die Datenbankdateien in einem Volume namens db-data gespeichert. Selbst wenn Sie den Container löschen und neu erstellen, bleiben die Daten erhalten.
Aktualisierung von Diensten
Das Aktualisieren eines Docker-Dienstes ist einfach:
# Hole letzte Version
docker compose pull
# Neustart mit neuer Version
docker compose up -d
Vergleiche dies mit der manuellen Aktualisierung installierter Software, bei der du möglicherweise herunterladen, konfigurieren und hoffen musst, dass nichts kaputt geht.
Aufgabe 1 - Richten Sie Nginx mit Docker Compose ein
Erstellen Sie eine docker-compose.yml, die einen Nginx-Webserver ausführt:
- Erstellen Sie einen neuen Ordner und erstellen Sie die Datei
docker-compose.yml - Definieren Sie einen Dienst mit
image: nginx:latestauf Port 80 - Führen Sie
docker compose up -daus - Besuchen Sie
http://localhostin Ihrem Browser
Aufgabe 2 – Einen Dienst hinzufügen
Erweitere docker-compose.yml aus Aufgabe 1 um einen zusätzlichen Dienst. Zum Beispiel:
- Uptime Kuma auf Port 3001
- Grafana auf Port 3000
Starte alles mit docker compose up -d und stelle sicher, dass beide Dienste gleichzeitig laufen.
Zusammenfassung
- Docker Compose ermöglicht es Ihnen, mehrere Dienste in einer einzigen Datei zu definieren.
- Die Compose-Datei ist sowohl Konfiguration als auch Dokumentation.
- Volumes speichern Daten außerhalb des Containers, sodass sie Neustarts überleben.
- Die Aktualisierung erfolgt über
docker compose pull+docker compose up -d. - Docker erleichtert die Verlagerung von Diensten zwischen Servern.