Traefik als Reverse Proxy für Docker einsetzen
Traefik ist ein moderner, cloud-nativer Reverse Proxy und Load Balancer, der die Bereitstellung von Microservices automatisiert. Er integriert sich nahtlos in Umgebungen wie Docker, Kubernetes und andere Orchestrierungstools – und konfiguriert sich dynamisch anhand der laufenden Container.
1. Voraussetzungen
Stelle sicher, dass folgende Anforderungen erfüllt sind:
Ein Linux-Server mit installiertem Docker und Docker Compose
Root-Zugriff oder ein Benutzer mit sudo-Rechten
Falls Docker noch nicht installiert ist:
curl -fsSL https://get.docker.com | sh
sudo systemctl enable docker && sudo systemctl start docker
2. Traefik als Docker-Container installieren
Erstelle zunächst ein Arbeitsverzeichnis:
mkdir -p ~/traefik && cd ~/traefik
Erstelle anschließend die Datei docker-compose.yml mit folgendem Inhalt:
version: '3.8'
services:
traefik:
image: traefik:v3.3.4
container_name: traefik
restart: always
command:
- "--api.insecure=true"
- "--providers.docker"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.myresolver.acme.email=your-email@example.com"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
- "8080:8080" # Traefik Dashboard
volumes:
- "/var/run/docker.sock:/var/run/docker.sock:ro"
- "./letsencrypt:/letsencrypt"
networks:
- traefik
networks:
traefik:
external: true
Traefik starten:
docker-compose up -d
Das Dashboard ist erreichbar unter:
http://<deine-server-ip>:8080
3. Beispiel: Einen Docker-Service mit Traefik verbinden
Erstelle die Datei whoami.yml mit folgendem Inhalt:
version: '3.8'
services:
whoami:
image: traefik/whoami
container_name: whoami
restart: always
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(`whoami.example.com`)"
- "traefik.http.routers.whoami.entrypoints=web"
- "traefik.http.routers.whoami.middlewares=redirect-to-https"
- "traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https"
- "traefik.http.routers.whoami.tls.certresolver=myresolver"
networks:
- traefik
networks:
traefik:
external: true
Whoami-Service starten:
docker-compose -f whoami.yml up -d
Der Dienst ist nun über http://whoami.example.com erreichbar (sofern ein DNS-Eintrag vorhanden ist).
4. Wichtige Hinweise
-
Sicherheit:
--api.insecure=trueerlaubt den ungeschützten Zugriff auf das Dashboard. Für den Produktivbetrieb unbedingt deaktivieren oder durch Authentifizierung absichern! -
Netzwerk:
Stelle sicher, dass das externe Netzwerktraefikexistiert. Falls nicht, kannst du es so erstellen:docker network create traefik -
Let’s Encrypt:
Trage deine echte E-Mail-Adresse beiyour-email@example.comein, um gültige SSL-Zertifikate zu erhalten.
5. Fazit
Traefik wurde erfolgreich als Reverse Proxy für Docker-Container installiert.
SSL-Zertifikate wurden über Let’s Encrypt automatisch eingebunden.
Ein Test-Service (whoami) wurde angebunden und über eine eigene Subdomain erreichbar gemacht.
Mit dieser Basis kannst du deine Containerumgebung sicher, flexibel und automatisiert verwalten – ideal für Microservices und dynamische Infrastrukturen.