In diesem Beitrag geht es um Traefik für Docker-Container.
Konfigurationseinführung
Wie die Magie passiert
Traefik für Docker-Container
Wenn Sie Docker noch nicht installiert haben, finden Sie Anleitungen für Ubuntu oder Debian. Dieses Handbuch verwendet docker-compose, um Traefik auszuführen, daher ist es notwendig, auch docker-compose zu installieren. Die beiden verlinkten Anleitungen helfen Ihnen, docker-compose auf Ihrem eigenen Host einzurichten.
Beginnen wir mit der Einrichtung von Traefik.
Erstellen Sie zuerst einige Dateien und Ordnerverzeichnisse für unsere Container:
mkdir -p /opt/containers/traefik
mkdir /opt/containers/traefik/data
touch /opt/containers/traefik/data/traefik.yml
touch /opt/containers/traefik/data/acme.json
chmod 600 /opt/containers/traefik/data/acme.json
Sicheres Passwort generieren
Erstellen Sie eine Konfigurationsdatei und richten Sie ein verschlüsseltes Passwort ein, um auf das Traefik-Dashboard zuzugreifen. Sie können das Dienstprogramm htpasswd verwenden, um das verschlüsselte Passwort zu erstellen. Um das Dienstprogramm htpasswd zu verwenden, installieren Sie das Dienstprogramm mit dem folgenden Befehl
$ sudo apt-get install -y apache2-utils
Führen Sie dann den folgenden Befehl aus, um das sichere Passwort zu generieren
$sudo htpasswd -nb unixcop unixcop@123
unixcop:$$apr1$$zUb/YuK2$$57psQ0U71DlfdHPr0yoHe/
Ich habe "unixcop@123" zum Verschlüsseln verwendet. Sie können Ihre eigenen Annahmen haben. Der Benutzer wird als „unixcop“ angenommen, Sie können ihn durch Ihren eigenen Benutzernamen ersetzen.
Kopieren Sie die automatisch generierte Ausgabe und speichern Sie sie irgendwo, da wir dieses verschlüsselte Passwort in der Traefik-Konfigurationsdatei verwenden müssen, um die grundlegende Authentifizierung für das Traefik-Dashboard einzurichten
traefik.yml
Als nächstes öffnen wir unsere neu erstellte Traefik-Konfigurationsdatei mit einem Editor Ihrer Wahl.
vim /opt/containers/traefik/data/traefik.yml
api:
dashboard: true
entryPoints:
http:
address: ":80"
https:
address: ":443"
providers:
docker:
endpoint: "unix:///var/run/docker.sock"
exposedByDefault: false
certificatesResolvers:
http:
acme:
email: [email protected] # CHANGE HERE
storage: acme.json
httpChallenge:
entryPoint: http
Erstellen Sie eine docker-compose.yml
Datei, in der Sie einen reverse-proxy
definieren Dienst, der das offizielle Traefik-Bild verwendet:
docker-compose.yml
version: '3'
services:
traefik:
image: traefik:latest
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- 80:80
- 443:443
volumes:
- /etc/localtime:/etc/localtime:ro
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./data/traefik.yml:/traefik.yml:ro
- ./data/acme.json:/acme.json
labels:
- "traefik.enable=true"
- "traefik.http.routers.traefik.entrypoints=http"
- "traefik.http.routers.traefik.rule=Host(`traefik.domain.tld`)"
- "traefik.http.middlewares.traefik-auth.basicauth.users=unixcop:$$apr1$$zUb/YuK2$$57psQ0U71DlfdHPr0yoHe"
- "traefik.http.middlewares.traefik-https-redirect.redirectscheme.scheme=https"
- "traefik.http.routers.traefik.middlewares=traefik-https-redirect"
- "traefik.http.routers.traefik-secure.entrypoints=https"
- "traefik.http.routers.traefik-secure.rule=Host(`traefik.domain.tld`)"
- "traefik.http.routers.traefik-secure.middlewares=traefik-auth"
- "traefik.http.routers.traefik-secure.tls=true"
- "traefik.http.routers.traefik-secure.tls.certresolver=http"
- "traefik.http.routers.traefik-secure.service=api@internal"
networks:
proxy:
external: true
Mit unserer docker-compose.yml definieren wir den Traefik-Docker-Container mit allen Einstellungen und Konfigurationsdateien. Um Traefik zum Laufen zu bringen, müssen Sie nur einige Einstellungen anpassen:
- ersetzen Sie beide
traefik.domain.tld
mit eigenem Domainnamen. Diese Domain sollte eine Subdomain wie zum Beispiel traefik.ae3.ch sein. Später können Sie mit dieser (Sub-)Domain auf Traefik Dasboard zugreifen.
Docker-Netzwerk für Traefik erstellen
Es ist eine gute Idee, ein separates Docker-Netzwerk einzurichten, das von Traefik und allen anderen Docker-Containern verwendet wird, die Sie Traefik zur Verfügung stellen möchten.
Um dieses Docker-Netzwerk zu erstellen, müssen Sie lediglich den folgenden Befehl in Ihre CLI einfügen:
docker network create proxy
Traefik ausführen
docker-compose up -d
Nach einigen Sekunden können Sie Ihr Traefik-Dashboard unter Ihrer benutzerdefinierten Domäne, die Sie in Ihrer docker-compose.yml
eingegeben haben, überprüfen und darauf zugreifen