ra2 studio - Fotolia

Wie Sie virtuelle Desktops mit Docker und Linux umsetzen

Damit Anwender auch ohne Client direkt über den Browser auf den Desktop zugreifen können, müssen Sie eine VDI-Umgebung mit Linux im Netzwerk aufbauen.

Wenn Sie Büroanwendungen oder Unternehmenssoftware zur Verfügung stellen wollen, ohne zusätzliche Installation von Linux-PCs oder von virtuellen Maschinen (VMs) auf Workstations, eignet sich der Zugriff mit einem Webbrowser auf eine VDI-Umgebung mit Linux. Denn mit nur einem Linux-Server können Sie fast beliebig viele Desktops bereitstellen.

Vorteile des eigenen Linux-Terminalservers im Netzwerk

Es ist nicht erforderlich, dass es sich um einen physischen Linux-Server handelt. Eine entsprechend leistungsstarke virtuelle Maschine mit Ubuntu ist ausreichend. Das System kann so konfiguriert werden, dass die Nutzer über eine Webschnittstelle auf die Desktops zugreifen können. Aus Sicherheitsgründen ist es empfehlenswert, den Zugriff über das interne Netzwerk zu regeln.

Eine besonders platzsparende Variante der VDI ist die Nutzung von Docker-Containern zum Hosting. Hierfür kann beispielsweise Proxmox verwendet werden.

Installation von Docker als Grundlage für den Linux-Terminalserver

In dieser Anleitung wird Docker als Basis für den Linux-Terminalserver verwendet. Für die Installation und Einrichtung werden Root-Rechte benötigt. Bitte nutzen Sie entweder eine Shell mit Root-Rechten oder führen Sie die Befehle mit sudo aus. Der erste Schritt für den Linux-Terminalserver ist die Installation von Docker mit den folgenden Befehlen:

sudo apt install docker.io && sudo apt install docker-compose

Es ist empfehlenswert, den Server zuvor auf den aktuellen Stand zu bringen:

sudo apt update && sudo apt upgrade

In einer einfachen Struktur wird Benutzern in kleinen Umgebungen jeweils ein eigener Linux-Desktop zur Verfügung gestellt, der sich vom Benutzer anpassen lässt. Für jeden Desktop sollte zunächst ein eigenes Verzeichnis auf dem Linux-Server angelegt werden, in dem die jeweiligen Daten gespeichert werden. Das kann beispielsweise über das Terminal mit den folgenden Befehlen durchgeführt werden:

Mkdir /desktop1
Mkdir /desktop2

usw.

Webtops: Eigene Linux-Desktops im Netzwerk für jeden Anwender

Selbstverständlich besteht die Möglichkeit, auf jedem Desktop eine andere Distribution zu installieren, sofern das gewünscht ist. Für die Bereitstellung nutzen wir das Projekt Webtops, das auf dem Docker Hub verfügbar ist. Auf der Seite sind die verschiedenen Distributionen zu sehen, auf deren Basis jeder Anwender einen eigenen Webtop/virtuellen Linux-Desktop erhält.

Linux-Desktop im Webbrowser
Abbildung 1: Das Webtop-Projekt bietet eine Vielzahl an Linux-Distributionen, mit denen Anwender einen eigenen Linux-Desktop im Webbrowser öffnen können.

Das Webtop-Projekt nutzt standardmäßig XFCE mit Alpine. Darüber hinaus stehen Ihnen eine Reihe weiterer Umgebungen zur Verfügung, beispielsweise KDE mit Ubuntu, Arch Linux oder Fedora.

Erstellung einer Docker-Compose-Datei für den ersten virtuellen Desktop

Um einen virtuellen Linux-Desktop bereitzustellen, wird zunächst eine neue Docker-Compose-Datei erstellt. Dazu kann beispielsweise der Editor nano verwendet werden:

nano docker-compose.yaml

Im nächsten Schritt nehmen Sie die Einstellungen für die Linux-Desktops vor, indem Sie den Inhalt der Datei anpassen. Verschiedene Vorlagen sind auf der Docker-Hub-Seite des Projektes verfügbar.

Konfiguration der Docker-Compose-Datei
Abbildung 2: Im Rahmen der Umstellung auf den neuen virtuellen Linux-Desktop ist die Docker-Compose-Datei zu konfigurieren.

Bitte beachten Sie, dass in der Spalte image: lscr.io/linuxserver/webtop:latest der korrekte Tag für den virtuellen Desktop angegeben ist. Die Tags der einzelnen Distributionen können auf der Docker-Hub-Seite des Projektes eingesehen werden. Bitte geben Sie bei container_name den Namen des Containers für den jeweiligen virtuellen Desktop an. Es wird empfohlen, dass dieser dem Namen des erstellten Verzeichnisses entspricht. Die Zeitzone des Desktops steuert die Zeile TZ=. In Deutschland sollte hier die Einstellung TZ=Europe/Berlin gewählt werden. Zudem ist es empfehlenswert, unter KEYBOARD das deutsche Tastaturlayout einzustellen.

Im Bereich Volumes hinterlegen Sie die Pfade für die virtuellen Desktops. An dieser Stelle werden die zuvor angelegten Pfade verwendet. Des Weiteren besteht die Option, für unterschiedliche Desktops verschiedene Ports für den Zugriff zu nutzen. Außerdem gibt es die Möglichkeit, den Arbeitsspeicher in der YAML-Datei des virtuellen Desktops festzulegen.

Erstellung eines virtuellen Desktops mit Docker Compose

Nachdem Sie die Docker-Compose-Datei bearbeitet haben, starten Sie als nächstes Docker Compose. Geben Sie hierzu folgenden Befehl ein:

docker-compose up -d

Das Tool erstellt Container anhand der Datei docker-compose.yaml.

Erstellen eines neuen, virtuellen Desktops
Abbildung 3: Erstellen Sie einen neuen, virtuellen Desktop.

Bitte beachten Sie, dass der Vorgang einige Zeit in Anspruch nimmt. Anschließend informiert Docker Compose, dass der Desktop bereitgestellt wurde. Sie finden diesen unter http://<IP-Adresse>:3000.

Der virtuelle Desktop in der Praxis

In der Praxis sollten Sie darüber nachdenken, mit HTTPS die Sicherheit zu verbessern und eine Authentifizierung einzubauen. Dazu ist es ratsam, auf HTTPS umzustellen. Die entsprechenden Optionen dazu finden Sie auf der Docker-Hub-Seite des Projektes. Des Weiteren können Sie auch die Audiowiedergabe und weitere Funktionen nutzen. Anwender haben die Möglichkeit, auf dem virtuellen Desktop Programme zu installieren, wie sie es von herkömmlichen Linux-Systemen gewohnt sind.

Praxiseinsatz
Abbildung 4: So setzen Sie den virtuellen Desktop in der Praxis ein.

Ändern Sie das Standardkennwort in Ihren Desktops ab. Bitte beachten Sie, dass bei Verwendung der Erweiterung ?login=true in der URL die Anmeldung erzwungen wird. An dieser Stelle können Sie die VDI nach Ihren Vorstellungen anpassen. Außerdem stehen Optionen für Hardwarebeschleunigung und Unterstützung für NVIDIA-Grafikkarten zur Verfügung, sofern Ihre Anwender GPUs benötigen.

Erfahren Sie mehr über Server- und Desktop-Virtualisierung