Docker Compose

Docker Compose definiert und startet mehrere Container als eine Anwendung in einer einzigen YAML-Datei.

compose.yaml

Die folgende compose.yaml entspricht der PostgreSQL + PGAdmin4 Infrastruktur aus der vorherigen Lektion:

services:
  postgres:
    image: postgres:18.3-alpine3.23
    environment:
      POSTGRES_PASSWORD: postgres
    volumes:
      - pgdata:/var/lib/postgresql
    networks:
      - pgnet

  pgadmin4:
    image: dpage/pgadmin4:9.14.0
    environment:
      PGADMIN_DEFAULT_EMAIL: admin@admin.com
      PGADMIN_DEFAULT_PASSWORD: admin
    ports:
      - "8080:80"
    networks:
      - pgnet
    depends_on:
      - postgres

volumes:
  pgdata: {}

networks:
  pgnet: {}

Befehle

docker compose up -d          # starten (detached)
docker compose ps             # Status
docker compose logs -f        # Logs aller Services
docker compose logs -f postgres
docker compose down           # stoppen und Container entfernen
docker compose down -v        # auch Volumes entfernen (Datenverlust!)

Hinweis: docker compose down -v löscht alle Volumes – alle Daten in der PostgreSQL-Datenbank gehen verloren.

Nützliche Optionen

docker compose up -d --build          # Image neu bauen und starten
docker compose up -d --force-recreate # Container neu erstellen
docker compose pull                   # Images aktualisieren
docker compose exec postgres bash     # Shell in einem laufenden Container
docker compose top                    # Prozesse der Container anzeigen