Anleitung: Traefik unter Linux installieren und Docker-Container einbinden

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


:wrench: 1. Voraussetzungen

Stelle sicher, dass folgende Anforderungen erfüllt sind:

  • :penguin: Ein Linux-Server mit installiertem Docker und Docker Compose
  • :locked_with_key: Root-Zugriff oder ein Benutzer mit sudo-Rechten

:backhand_index_pointing_right: Falls Docker noch nicht installiert ist:

curl -fsSL https://get.docker.com | sh
sudo systemctl enable docker && sudo systemctl start docker

:hammer_and_wrench: 2. Traefik als Docker-Container installieren

:file_folder: Erstelle zunächst ein Arbeitsverzeichnis:

mkdir -p ~/traefik && cd ~/traefik

:page_facing_up: 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

:play_button: Traefik starten:

docker-compose up -d

:desktop_computer: Das Dashboard ist erreichbar unter:
http://<deine-server-ip>:8080


:puzzle_piece: 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

:play_button: Whoami-Service starten:

docker-compose -f whoami.yml up -d

:globe_with_meridians: Der Dienst ist nun über http://whoami.example.com erreichbar (sofern ein DNS-Eintrag vorhanden ist).


:warning: 4. Wichtige Hinweise

  • :locked: Sicherheit:
    --api.insecure=true erlaubt den ungeschützten Zugriff auf das Dashboard. Für den Produktivbetrieb unbedingt deaktivieren oder durch Authentifizierung absichern!

  • :globe_with_meridians: Netzwerk:
    Stelle sicher, dass das externe Netzwerk traefik existiert. Falls nicht, kannst du es so erstellen:

    docker network create traefik
    
  • :open_mailbox_with_raised_flag: Let’s Encrypt:
    Trage deine echte E-Mail-Adresse bei your-email@example.com ein, um gültige SSL-Zertifikate zu erhalten.


:white_check_mark: 5. Fazit

  • :white_check_mark: Traefik wurde erfolgreich als Reverse Proxy für Docker-Container installiert.
  • :white_check_mark: SSL-Zertifikate wurden über Let’s Encrypt automatisch eingebunden.
  • :white_check_mark: 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.