Docker Traefik Grundlagen: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
(Die Seite wurde neu angelegt: „=Was ist Traefik= Traefik ist ein Reverseproxy der Anfragen von Clients entgegen nimmt und sie an die Container weitergibt. Traefik kann auch als TLS Endpunkt…“) |
|||
| Zeile 1: | Zeile 1: | ||
| + | [[Kategorie:Docker]] | ||
| + | [[Kategorie:Traefik]] | ||
=Was ist Traefik= | =Was ist Traefik= | ||
Traefik ist ein Reverseproxy der Anfragen von Clients entgegen nimmt und sie an die Container weitergibt. | Traefik ist ein Reverseproxy der Anfragen von Clients entgegen nimmt und sie an die Container weitergibt. | ||
Aktuelle Version vom 11. November 2024, 14:23 Uhr
Was ist Traefik
Traefik ist ein Reverseproxy der Anfragen von Clients entgegen nimmt und sie an die Container weitergibt. Traefik kann auch als TLS Endpunkt dienen und die Beschaffung von Zertifikaten verwalten.
Traefik läuft auch in einem Docker Container.
Port handling
Beim "normalen" Docker ohne Traefik wird die Unterscheidung welcher Container "angefahren" wird, anhand des Ports getroffen (ISO/OSI Schicht 4). Das ist sehr unschön und in der Praxis untauglich.
- Docker ohne Traefik
Wenn man traefik benutzt, erfolgt die Selektion mit welchem Container kommnuiziert wird, anhand des Domainnamens. Dies erfolgt in der Applikationsschicht (ISO/OSI Schicht 4).
- Docker mit Traefik
Wir erstellen zu erst ein Traefik Netz
- docker network create traefik-public
Einfaches Beispiel
version: "3.3"
networks:
traefik-public:
external: true
services:
traefik:
image: "traefik:v2.4"
container_name: "traefik"
command:
- "--api.insecure=true"
- "--providers.docker=true"
- "--providers.docker.exposedbydefault=false"
- "--entrypoints.web.address=:80"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.myresolver.acme.httpchallenge=true"
- "--certificatesresolvers.myresolver.acme.httpchallenge.entrypoint=web"
- "--certificatesresolvers.myresolver.acme.email=wombel@linugs.de"
- "--certificatesresolvers.myresolver.acme.storage=/letsencrypt/acme.json"
ports:
- "80:80"
- "443:443"
- "8080:8080"
volumes:
- "./letsencrypt:/letsencrypt"
- "/var/run/docker.sock:/var/run/docker.sock:ro"
networks:
- traefik-public
labels:
- "traefik.enable=true"
- "traefik.loadbalancer.server.port=8080"
- "traefik.http.routers.mytraefik.rule=Host(`traefik.linugs.de`)"
- "traefik.http.routers.mytraefik.tls.certresolver=myresolver"
- "traefik.http.routers.mytraefik.entrypoints=websecure"
- "traefik.http.routers.mytraefik.service=api@internal"
~
Traefik kann nun Anfragen entgegen nehmen und an die Container weiterleiten.

