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.

Kategorien: Allgemein