Traefik ist ein moderner Reverse Proxy und Load Balancer, der speziell für Container-Umgebungen entwickelt wurde. Diese Anleitung zeigt, wie Traefik auf Ubuntu installiert und konfiguriert wird.
Voraussetzungen
- Ubuntu 22.04 oder neuer
- Benutzer mit
sudo-Rechten - Docker und Docker Compose installiert
1. System aktualisieren
Zuerst die Paketlisten aktualisieren:
sudo apt update && sudo apt upgrade -y
Falls Docker noch nicht installiert ist:
sudo apt install docker.io docker-compose -y sudo systemctl enable --now docker
2. Traefik-Container einrichten
Ein neues Verzeichnis für Traefik erstellen:
mkdir -p ~/traefik && cd ~/traefik
Dann die docker-compose.yml-Datei anlegen:
nano docker-compose.yml
Folgenden Inhalt einfügen:
version: "3.8"
services:
traefik:
image: traefik:v2.10
restart: always
container_name: traefik
ports:
- "80:80"
- "443:443"
- "8080:8080" # Traefik-Dashboard
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/etc/traefik/traefik.yml:ro
- ./acme.json:/acme.json
networks:
- web
networks:
web:
external: true
3. Traefik-Konfiguration erstellen
Eine neue traefik.yml-Datei erstellen:
nano traefik.yml
Folgenden Inhalt einfügen:
global:
checkNewVersion: true
sendAnonymousUsage: false
entryPoints:
web:
address: ":80"
websecure:
address: ":443"
providers:
docker:
exposedByDefault: false
api:
dashboard: true
insecure: true
Dann eine Datei für Let’s Encrypt-Zertifikate erstellen:
touch acme.json chmod 600 acme.json
4. Traefik starten
Den Container mit Docker Compose starten:
docker-compose up -d
Den Status überprüfen:
docker ps
Das Traefik-Dashboard ist nun unter http://<server-ip>:8080 erreichbar.
5. Beispiel: Container mit Traefik verbinden
Ein Testcontainer mit einem Traefik-Label starten:
docker run -d \ --name whoami \ --label "traefik.enable=true" \ --label "traefik.http.routers.whoami.rule=Host(`whoami.example.com`)" \ --label "traefik.http.routers.whoami.entrypoints=web" \ --network web \ containous/whoami
Nun kann whoami.example.com im Browser aufgerufen werden (Domain muss in /etc/hosts eingetragen oder mit einer echten Domain verwendet werden).
Fazit
Traefik ist eine flexible und leistungsfähige Lösung für das Routing von Containern. Besonders in Docker-Umgebungen bietet es viele Vorteile gegenüber traditionellen Reverse Proxys wie Nginx.