Dieses Tutorial ist NICHT mehr valid und dient nur noch als historisches Anschauungsmaterial!

Bitte lies Dir den Disclaimer durch, bevor Du eine Anleitung umsetzt...

Haftungsausschluss / Disclaimer

Traefik Docker Container als Reverse-Proxy und Let’s Encrypt Provider

Traefik installieren

Die Installation eines Docker-Containers aus dem Docker-Repository ist schon fast „langweilig“. Da wir bereits eine „docker-compose“-Datei für Traefik haben, laden wir den Container mit einer einzigen Anweisung:

docker-compose -f /root/docker/traefik-v1/docker-compose.yml pull

„docker-compose“ ist der Befehl. Die Option „-f“ gibt an, dass wir eine .yml-Datei aus einem anderen als dem gerade aktiven Verzeichnis verarbeiten möchten. Diese geben wir mit dem vollen Pfad im Anschluss an. Das Kommando „pull“ weist Docker an, die in der „docker-compose“-Datei angegebenen Container aus dem Internet auf unseren Server herunterzuladen, falls sie sich noch nicht auf unserem System befinden.

Traefik starten

Ist der Container fertig geladen und entpackt, starten wir ihn ebenfalls mit einer einzigen Zeile:

docker-compose -f /root/docker/traefik-v1/docker-compose.yml up -d

Das Kommando „up“ startet den Container. Die Option „-d“ steht für „Detatched“ und legt fest, dass der Container nicht an unser Terminal angekoppelt wird, sondern im Hintergrund ausgeführt werden soll.

Ob der Container läuft, sehen wir mit folgendem Kommando:

docker ps -a

IMAGE         COMMAND      CREATED             STATUS              PORTS                                      NAMES
traefik:1.7   "/traefik"   About an hour ago   Up About an hour    0.0.0.0:80->80/tcp, 0.0.0.0:443->443/tcp   traefik-v1

Der Übersicht halber hab ich hier die „Container ID“ abgeschnitten.
Wir sehen, dass der Traefik Container läuft. Wunderbar :)

Logfiles überprüfen

Jetzt interessiert uns natürlich brennend, was der Container so anstellt. Dazu zapfen wir die Logs des Containers an:

docker logs -f --tail="50" traefik-v1

„docker logs“ ist der Befehl, um Docker Logfiles ausgeben zu lassen. „f“ ‚folgt‘ dem Log, wir sehen also Live alle Änderungen. –tail=“50″ gibt noch die letzten 50 Zeilen des Logs mit aus. „taefik-v1“ ist der Name des Containers, von dem wir die Logs wünschen.

Nun sollten einige Zeilen Text auftauchen. Mehr oder weniger so ähnlich wie diese gekürzte Ausgabe:

time="2019-09-19T16:53:54Z" level=info msg="Using TOML configuration file /etc/traefik/traefik.toml"
time="2019-09-19T16:53:54Z" level=info msg="Traefik version v1.7.14 built on 2019-08-14_09:46:58AM"
time="2019-09-19T16:53:54Z" level=info msg="\nStats collection is enabled.\nMany thanks for contributing to Traefik's improvement by allowing us to receive anonymous information from your configuration.\nHelp us improve Traefik by leaving this feature on :)\nMore details on: https://docs.traefik.io/basics/#collected-data\n"
time="2019-09-19T16:53:54Z" level=info msg="Preparing server dashboard &{Address::8080 TLS:<nil> Redirect:<nil> Auth:0xc000a8a3f0 WhitelistSourceRange:[] WhiteList:<nil> Compress:false ProxyProtocol:<nil> ForwardedHeaders:0xc0005362c0} with readTimeout=0s writeTimeout=0s idleTimeout=3m0s"
time="2019-09-19T16:53:54Z" level=info msg="Preparing server http &{Address::80 TLS:<nil> Redirect:0xc0000cb800 Auth:<nil> WhitelistSourceRange:[] WhiteList:<nil> Compress:false ProxyProtocol:<nil> ForwardedHeaders:0xc000536280} with readTimeout=0s writeTimeout=0s idleTimeout=3m0s"
time="2019-09-19T16:53:54Z" level=info msg="Preparing server https &{Address::443 TLS:0xc00059d9e0 Redirect:<nil> Auth:<nil> WhitelistSourceRange:[] WhiteList:<nil> Compress:false ProxyProtocol:<nil> ForwardedHeaders:0xc0005362a0} with readTimeout=0s writeTimeout=0s idleTimeout=3m0s"
time="2019-09-19T16:53:54Z" level=info msg="Starting server on :8080"
time="2019-09-19T16:53:54Z" level=info msg="Starting server on :80"
time="2019-09-19T16:53:54Z" level=info msg="Starting provider configuration.ProviderAggregator {}"
time="2019-09-19T16:53:54Z" level=info msg="Starting server on :443"
time="2019-09-19T16:53:54Z" level=info msg="Starting provider *docker.Provider {\"Watch\":true,\"Filename\":\"\",\"Constraints\":null,\"Trace\":false,\"TemplateVersion\":2,\"DebugLogGeneratedTemplate\":false,\"Endpoint\":\"unix:///var/run/docker.sock\",\"Domain\":\"\",\"TLS\":null,\"ExposedByDefault\":false,\"UseBindPortIP\":false,\"SwarmMode\":false,\"Network\":\"\",\"SwarmModeRefreshSeconds\":15}"
time="2019-09-19T16:53:54Z" level=info msg="Testing certificate renew..."
time="2019-09-19T16:53:54Z" level=info msg="Server configuration reloaded on :443"
time="2019-09-19T16:53:54Z" level=info msg="Server configuration reloaded on :8080"
time="2019-09-19T16:53:54Z" level=info msg="Server configuration reloaded on :80"
time="2019-09-19T16:53:55Z" level=info msg="Server configuration reloaded on :80"
time="2019-09-19T16:53:55Z" level=info msg="Server configuration reloaded on :443"
time="2019-09-19T16:53:55Z" level=info msg="Server configuration reloaded on :8080"
time="2019-09-19T17:03:55Z" level=warning msg="A new release has been found: 2.0.0. Please consider updating."

Das mit dem Update am Schluss ist blanker Hohn, ansonsten scheint der Container zu laufen und das zu tun, was er soll…

Den ACME-Teil hab ich hier rausgeschnitten. Nach ein paar Sekunden sollte die Anfrage an die CA laufen und wir mit einem Zertifikat belohnt werden. Das können wir auch einfach prüfen, indem wir das Log mit „Strg + C“ beenden und uns die „acme.json“-Datei anzeigen lassen:

cat ~/docker/traefik-v1/acme/acme.json

["Account"...]

Sobald in dieser Datei etwas steht, kommuniziert unser Traefik-Container mit Let’s Encrypt. Hier werden dann unser Account samt privatem Schlüssel und darunter alle ausgestellten Zertifikate aufgelistet.

Testen wir mal, ob und wie wir ins Dashboard kommen…

Anzeige *

2 Kommentare zu „Traefik Docker Container als Reverse-Proxy und Let’s Encrypt Provider“

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Verwendung
von Cookies

Um unsere Webseite für Sie optimal zu gestalten und fortlaufend verbessern zu können, verwenden wir Cookies. Durch die weitere Nutzung der Webseite stimmen Sie der Verwendung von Cookies zu. Weitere Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung.

Scroll to Top