Xubuntu im Docker-Container

Eine einfache Anleitung, um Xfce4 mit xrdp in einem Docker-Container zu starten.

Xubuntu im Docker-Container

Ich habe bereits Kali-Linux in einem LXC-Container gestartet. Das hat sich bisher auch als beste Variante herausgestellt.

Kali-Desktop in einem Proxmox LXC-Container
Container sind erstaunlich schlank. Doch leider haben sie keine grafische Oberfläche. Es gibt auch kein Kali-Linux CT-Template für Proxmox. An einem dienstlichen Arbeitsplatz kann es hin und wieder erforderlich sein, Netzwerkprobleme zu analysieren. Und möglicherweise gestattet der Arbeitgeber die…

Doch nicht immer hat man die Möglichkeit einen LXC-Container zu nutzen. Daher probiere ich das ganze nocheinmal unter Docker. Das wird etwas komplexer, da ich den Container erst bauen werde.

Docker-Compose-Datei erstellen

Ich erstelle zunächst eine docker-compose.yml-Datei:

version: '3'
services:
  xfce4-container:
    build:
      context: .
    image: xfce4-container
    container_name: xfce4-container
    ports:
      - "3389:3389"
      - "5900:5900"
    command: xrdp --nodaemon

Dockerfile erstellen

Dann eine Datei namens Dockerfile:

FROM ubuntu:latest

# Installiere notwendige Pakete
RUN apt-get update && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y xfce4 xrdp xvfb && \
    apt-get clean && \
    rm -rf /var/lib/apt/lists/*

# Starte den RDP-Server beim Containerstart
CMD ["xrdp", "--nodaemon"]

Docker-Image bauen

Dann gehe ich in das Verzeichnis, in dem ich beide Dateien angelegt habe, und führe den folgenden Befehl aus:

docker-compose build

Container starten

Den eben gebauten Container starte ich wieder mit folgendem Kommando:

docker-compose up -d

Noch schnell ein root-Passwort vergeben:

docker exec -it xfce4-container passwd root

Manueller Start des xrdp-Sitzungsmanagers

Falls erforderlich, kann man den xrdp-Sitzungsmanager manuell starten. Ich habe bei meinen ersten Versuchen gesehen, daß nach Eingabe des Passwortes die RDP-Session eingefroren wirkt. Dann einfach folgendes eingeben:

docker exec -it xfce4-container xrdp-sesman

Erster Start

Ich nutze Linux und stelle die Verbindung zum Xubuntu-Container mit xfreerdp her:

xfreerdp /u:root /dynamic-resolution /v:container-dev-host

Unter Windows kann man mit mstsc ebenfalls eine Session starten. Und schon öffnet sich der Login-Screen:

Und wenn alles gut gegangen ist, startet eine Session:

Fazit

Beide Optionen sind umsetzbar. Wenn man eine VPS-Instanz im Internet gemietet hat, steht wahrscheinlich kein Proxmox-Server zur Verfügung. In solchen Fällen bietet sich Docker als eine gute Alternative an.

Es gibt jedoch Hoffnung: Viele VPS-Anbieter stellen ein Debian-Image zur Verfügung. Da Proxmox als Debian-Paket installiert werden kann, besteht die Möglichkeit, Container oder sogar komplette virtuelle Maschinen (VMs) mit virtuellen Netzwerken bequem zu verbinden.