Reverse Proxy mit Docker: Traefik Setup für automatische Routen

Ein Reverse Proxy ermöglicht die zentrale Verwaltung von HTTP/HTTPS-Anfragen und die Weiterleitung an verschiedene Services. Traefik ist ein moderner Reverse Proxy, der mit Docker Compose automatisch Routen erkennt und Zertifikate über Let’s Encrypt bereitstellt. In diesem Tutorial zeigen wir Schritt für Schritt, wie Sie Traefik auf Linux mit Docker Compose einrichten, inklusive automatischer Konfiguration, persistenter Volumes und sicherer Netzwerke.

Grundkomponenten eines Traefik-Stacks

Ein Traefik-Setup besteht typischerweise aus:

  • Traefik: Reverse Proxy, der Anfragen an verschiedene Services weiterleitet
  • Services: Containerisierte Anwendungen, die von Traefik verwaltet werden
  • Volumes: Persistente Speicherung für Traefik-Konfigurationen, Zertifikate und Logs
  • Netzwerke: Interne Kommunikation zwischen Traefik und den Services

Volumes für Persistenz

Volumes sorgen dafür, dass Traefik-Konfigurationen und SSL-Zertifikate dauerhaft gespeichert werden und bei Neustarts erhalten bleiben.

volumes:
  traefik_config:
  traefik_certificates:
  traefik_logs:
  • traefik_config für statische und dynamische Konfigurationen
  • traefik_certificates für Let’s Encrypt Zertifikate
  • traefik_logs für Traefik Logs

Netzwerke für interne Kommunikation

Ein separates Netzwerk stellt sicher, dass Traefik und die Services sicher miteinander kommunizieren.

networks:
  web_proxy_net:
  • Alle Services, die Traefik verwalten soll, werden mit web_proxy_net verbunden
  • Ermöglicht interne Kommunikation und Zugriff auf gemappte Ports

Beispiel: docker-compose.yml für Traefik

version: '3.8'

services:
traefik:
image: traefik:v2.12
container_name: traefik
restart: unless-stopped
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.lets-encrypt.acme.httpchallenge=true"
- "--certificatesresolvers.lets-encrypt.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.lets-encrypt.acme.email=admin@example.com"
- "--certificatesresolvers.lets-encrypt.acme.storage=/certificates/acme.json"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- traefik_config:/etc/traefik
- traefik_certificates:/certificates
- traefik_logs:/logs
networks:
- web_proxy_net

Erklärungen zur Compose-Datei

  • Command: Traefik-Parameter definieren EntryPoints, Docker Provider, Let’s Encrypt und Dashboard
  • Ports: HTTP (80), HTTPS (443) und Dashboard (8080) gemappt
  • Volumes: Docker Socket zur automatischen Erkennung von Containern, persistente Konfiguration, Zertifikate und Logs
  • Netzwerke: web_proxy_net verbindet Traefik mit den Services
  • ExposedByDefault: Container werden nur veröffentlicht, wenn sie das Label setzen

Beispiel-Service hinter Traefik

services:
  whoami:
    image: containous/whoami
    container_name: whoami
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.whoami.rule=Host(`whoami.example.com`)"
      - "traefik.http.routers.whoami.entrypoints=web,websecure"
      - "traefik.http.routers.whoami.tls.certresolver=lets-encrypt"
    networks:
      - web_proxy_net
  • Label traefik.enable=true aktiviert die automatische Route für diesen Container
  • Host: Definiert die Domain für die Weiterleitung
  • EntryPoints und TLS-Resolver definieren HTTP/HTTPS-Zugriff mit Let’s Encrypt

Start und Verwaltung des Traefik-Stacks

Starten Sie den Stack mit:

docker-compose up -d

Zum Stoppen und Entfernen aller Container, Netzwerke und Volumes:

docker-compose down -v

Best Practices

  • Volumes für Konfiguration, Zertifikate und Logs verwenden
  • Separate Netzwerke für Traefik und Services
  • Let’s Encrypt für automatische SSL-Zertifikate nutzen
  • Versionierte Images einsetzen, um Rollbacks zu erleichtern
  • Monitoring des Traefik-Dashboards aktivieren
  • Externe Ports nur nach Bedarf öffnen
  • Labels nutzen, um Container gezielt zu veröffentlichen
  • Backups der acme.json-Datei regelmäßig erstellen

Praxisbeispiele

Traefik starten

docker-compose up -d

Logs überwachen

docker-compose logs -f traefik

Neuen Service hinter Traefik einfügen

docker-compose up -d whoami

Updatefähigkeit

Durch versionierte Docker Images kann Traefik unkompliziert aktualisiert werden. Persistente Volumes sichern Konfigurationen und Zertifikate, sodass der Reverse Proxy nach Updates weiterhin funktioniert.

docker-compose pull
docker-compose up -d

Zusammenfassung

Mit Docker Compose lässt sich Traefik als Reverse Proxy schnell, sicher und automatisch konfigurierbar auf Linux betreiben. Persistente Volumes, interne Netzwerke, Labels und Let’s Encrypt-Zertifikate sorgen für Sicherheit, Wartbarkeit und Updatefähigkeit. Versionierte Images erleichtern Updates und Rollbacks und ermöglichen eine stabile Infrastruktur für containerisierte Services.

Konfiguriere Cisco Router & Switches und liefere ein Packet-Tracer-Lab/GNS3

Ich biete professionelle Unterstützung im Bereich Netzwerkkonfiguration und Network Automation für private Anforderungen, Studienprojekte, Lernlabore, kleine Unternehmen sowie technische Projekte. Ich unterstütze Sie bei der Konfiguration von Routern und Switches, der Erstellung praxisnaher Topologien in Cisco Packet Tracer, dem Aufbau und Troubleshooting von GNS3- und EVE-NG-Labs sowie bei der Automatisierung von Netzwerkaufgaben mit Netmiko, Paramiko, NAPALM und Ansible. Kontaktieren Sie mich jetzt – klicken Sie hier.

Meine Leistungen umfassen:

  • Professionelle Konfiguration von Routern und Switches

  • Einrichtung von VLANs, Trunks, Routing, DHCP, NAT, ACLs und weiteren Netzwerkfunktionen

  • Erstellung von Topologien und Simulationen in Cisco Packet Tracer

  • Aufbau, Analyse und Fehlerbehebung von Netzwerk-Labs in GNS3 und EVE-NG

  • Automatisierung von Netzwerkkonfigurationen mit Python, Netmiko, Paramiko, NAPALM und Ansible

  • Erstellung von Skripten für wiederkehrende Netzwerkaufgaben

  • Dokumentation der Konfigurationen und Bereitstellung nachvollziehbarer Lösungswege

  • Konfigurations-Backups, Optimierung bestehender Setups und technisches Troubleshooting

Benötigen Sie Unterstützung bei Ihrem Netzwerkprojekt, Ihrer Simulation oder Ihrer Network-Automation-Lösung? Kontaktieren Sie mich jetzt – klicken Sie hier.

Related Articles