Tailscale Logo

DockTail macht Docker-Container zu Tailscale Services

Wer Server mit Docker-Containern betreibt und von unterwegs auf deren Dienste zugreifen möchte, steht vor der Frage, wie sich diese möglichst einfach und sicher erreichbar machen lassen. Je mehr Container es werden, desto unpraktischer ist es, eine Liste mit den jeweiligen URLs zu führen. Neben klassischen VPN-Verbindungen und Reverse-Proxys bietet Tailscale mit seinen Services hier einen weiteren Ansatz. Mit Einführung der Services bietet Tailscale neben leicht zu merkenden URLs für Maschinen solche auch für Apps an.

Das Open-Source-Projekt DockTail macht diese Funktion für Docker-Container besonders einfach nutzbar. Dabei ist es egal, ob die Container in einer Umgebung wie Unraid oder TrueNAS laufen oder direkt auf einem Host betrieben werden.

Was sind Tailscale Services?

Tailscale ermöglicht es, Geräte über ein auf WireGuard basierendes, verschlüsseltes Netzwerk miteinander zu verbinden. Die Geräte erhalten eigene IP-Adressen und sind unabhängig von ihrem tatsächlichen Standort erreichbar, sofern die Zugriffsregeln dies erlauben. Über MagicDNS lassen sie sich zudem mit Namen statt IP-Adressen ansprechen.

Mit Tailscale Services wird dieses Prinzip erweitert. Nicht mehr das Gerät steht im Mittelpunkt, sondern der darauf angebotene Dienst. Eine Anwendung wie Jellyfin oder Paperless-ngx erhält einen eigenen Namen und eine virtuelle Tailscale-IP-Adresse. Der Zugriff erfolgt beispielsweise über https://jellyfin.example-tailnet.ts.net, unabhängig davon, auf welchem Server die Anwendung tatsächlich läuft. Der Teil der URL hinter dem Namen des Dienstes bleibt immer gleich und ist somit leicht zu merken.

Das hat mehrere Vorteile. Anwendungen lassen sich zwischen Servern verschieben, ohne dass sich ihre Adresse zwangsläufig ändert. Auch mehrere Server können denselben Service bereitstellen, um dessen Verfügbarkeit zu erhöhen. Die Zugriffsrechte werden weiterhin zentral über die Tailscale-Verwaltung geregelt. Die Services sind damit auch von unterwegs über eine Tailscale-Verbindung erreichbar, bleiben aber auf berechtigte Teilnehmer des privaten Tailnets beschränkt und sind nicht öffentlich im Internet zugänglich.

DockTail automatisiert die Einrichtung

Tailscale Services lassen sich auch ohne zusätzliche Software konfigurieren. Dazu müssen jedoch die Service-Definitionen angelegt, die zugehörigen Hosts eingerichtet und die Weiterleitungen zu den Anwendungen konfiguriert werden. Gerade bei zahlreichen Docker-Containern entsteht dadurch zusätzlicher Verwaltungsaufwand.

Hier setzt DockTail an. Die Anwendung überwacht die Docker-Engine und erkennt anhand spezieller Labels, welche Container als Tailscale Services bereitgestellt werden sollen. Dazu genügen wenige Angaben, etwa der gewünschte Service-Name und der interne Port der Anwendung.

DockTail übernimmt anschließend die Registrierung und Konfiguration über Tailscale. Standardmäßig greift es direkt auf die IP-Adressen der Container in ihren Docker-Netzwerken zu. Damit müssen deren Ports nicht einmal auf dem Docker-Host veröffentlicht werden. Ändert sich die interne IP-Adresse beim Neustart eines Containers, passt DockTail die Weiterleitung automatisch an.

Auch HTTPS lässt sich über Tailscale bereitstellen. Die Zertifikatsverwaltung übernimmt dabei Tailscale, während die Kommunikation zwischen dem Tailscale-Daemon und dem Container beispielsweise weiterhin über HTTP erfolgen kann.

Im Unterschied zu Lösungen, die für jede Anwendung eine eigene Tailscale-Instanz starten, nutzt DockTail die nativen Tailscale Services. Dadurch erscheinen die Anwendungen nicht als zusätzliche Geräte im Tailnet. Optional unterstützt DockTail auch Tailscale Funnel, um ausgewählte Dienste bei Bedarf öffentlich bereitzustellen.

Unterstützte Plattformen

DockTail ist nicht auf klassische Linux-Server beschränkt. Neben der Installation über Docker Compose unterstützt das Projekt auch verschiedene NAS- und Container-Plattformen. Für Unraid existiert ein Community-Plugin, das DockTail direkt in die Verwaltungsoberfläche integriert und einen Assistenten zum Erstellen der benötigten Docker-Labels mitbringt.

Auf TrueNAS SCALE lässt sich DockTail ab Version 24.10 als benutzerdefinierte Anwendung über eine Compose-Konfiguration installieren. Auch Synology-Systeme mit Container Manager sowie Podman-Umgebungen kommen infrage. Für macOS und Windows ist der Betrieb über Docker mit einem zusätzlichen Tailscale-Sidecar vorgesehen. Docker Swarm wird mit Einschränkungen unterstützt, Kubernetes dagegen nicht.

Die Entwickler testen DockTail hauptsächlich unter Linux mit Docker. Für andere Plattformen stehen Installationshinweise bereit, deren Funktionsfähigkeit teilweise auf Erfahrungsberichten aus der Community beruht.

Interesse an einer Anleitung?

Bei einem ersten Praxistest mit zwei Unraid-Servern ließen sich Paperless-ngx, Bazarr und Jellyfin problemlos als Tailscale Services einbinden. Dabei funktionierten sowohl das Docker-Standardnetzwerk als auch ein benutzerdefiniertes Bridge-Netzwerk.

DockTail erscheint insbesondere für Anwender interessant, die bereits Tailscale verwenden und mehrere selbst gehostete Anwendungen betreiben. Die Einrichtung ist nicht völlig voraussetzungslos, da zunächst die erforderlichen Berechtigungen und Tags im Tailnet definiert werden müssen. Anschließend reduziert sich die Konfiguration einzelner Docker-Container aber auf wenige Labels.

DockTail erscheint insbesondere für Anwender interessant, die bereits Tailscale verwenden und mehrere selbst gehostete Anwendungen betreiben. Die Einrichtung ist nicht völlig voraussetzungslos, da zunächst die erforderlichen Berechtigungen und Tags im Tailnet definiert werden müssen. Anschließend reduziert sich die Konfiguration einzelner Docker-Container aber auf wenige Labels.

Falls unter unseren Lesern Interesse besteht, könnten wir die Einrichtung in einem weiteren Artikel Schritt für Schritt beschreiben – entweder anhand des Unraid-Plugins oder auf einem gewöhnlichen Linux-Host mit Docker Compose. Wer Tailscale bereits nutzt und DockTail ausprobieren möchte, kann uns gerne in den Kommentaren mitteilen, welche Variante ihn besonders interessiert.

Teilt den Beitrag, falls ihr mögt

Kommentar hinterlassen