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.