Docker Traefik Grundlagen: Unterschied zwischen den Versionen

Aus Xinux Wiki
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

Docker-ports.png

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

Docker-traefik.png

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.


Traefik1.png