Traefik als Reverse Proxy auf Ubuntu einrichten: Dynamisches Routing für Container

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...

Anleitung personalisieren

Trage deine Domain ein, damit die Konfigurationsbeispiele direkt für dein Setup angezeigt werden.

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.