Docker als Automatisierung

Skip to content

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.

Easy Aufgabe 1 - Richten Sie Nginx mit Docker Compose ein

Erstellen Sie eine docker-compose.yml, die einen Nginx-Webserver ausführt:

  1. Erstellen Sie einen neuen Ordner und erstellen Sie die Datei docker-compose.yml
  2. Definieren Sie einen Dienst mit image: nginx:latest auf Port 80
  3. Führen Sie docker compose up -d aus
  4. Besuchen Sie http://localhost in Ihrem Browser

Medium Aufgabe 2 – Einen Dienst hinzufügen

Erweitere docker-compose.yml aus Aufgabe 1 um einen zusätzlichen Dienst. Zum Beispiel:

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.