Dockge – Die kleine WebUI für Docker

Dockge ist eine kleine einfache WebUI um Docker Container aber vor allem Docker Stacks über Docker-Compose Files schnell und einfach zu verwalten.

Installation

Vorausgesetzt wird eine funktionierende Docker Installation und Zugriff auf die Shell, entweder direkt oder Remote über SSH.
HINWEIS: Achtet darauf, dass ihr docker-compose-v2 installiert habt.

Zunächst erstellt man sich über die Shell im Benutzerverzeichnis einen Ordner „docker“, welches anschließend zum Speichern der Docker Stacks verwendet wird, und ein Ordner „dockge“, wo die Konfiguration von Dockge gespeichert wird.

mkdir docker dockge

Nun wird mit nano dockge/docker-compose.yml eine docker-compose.yml erstellt, wo wir unsere Konfiguration hinein kopieren werden.

services:
  dockge:
    image: louislam/dockge:latest
    restart: unless-stopped
    container_name: dockge
    hostname: dockge
    ports:
      - 5001:5001
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/app/data
      - /home/{USER}/docker:/home/{USER}/docker
    environment:
      - DOCKGE_STACKS_DIR=/home/{USER}/docker

Als Volume wird hier zusätzlich der Eintrag auf den Docker Ordner gesetzt:
- /home/{USER}/docker:/home/{USER}/docker
Zusätzlich wird eine Enivronment Variable gesetzt um Dockge mitzuteilen, dass Dockge die Stacks in dem genannten Volume ablegen und lesen soll:
- DOCKGE_STACKS_DIR=/home/{USER}/docker
{User} füllt ihr entsprechend eurem Benutzernamen aus.

Die Datei wird nun mit [STRG]+[O] abgespeichert und mit [STRG]+[X] wird die Datei geschlossen.

Nun begibt man sich in das Dockge Verzeichnis mit cd dockge und führt sudo docker compose up -d aus. Das Container-Image wird heruntergeladen und der Container entsprechend der Konfiguration gestartet.

Wenn man nun im Webbrowser die URL „http://{IP-des-Servers}:5001“ aufruft, dürfte die Webseite erscheinen.

Konfiguration

Dockge Oberfläche zum Erstellen eines Admin-Kontos.

Als Erstes wird man aufgefordert einen Admin-Account zu erstellen. Ich wähle hier als Benutzername „Admin“ und verwende ein entsprechendes Passwort.

Mit einem Klick auf „Erstellen“ ist man dann auch schon auf der Managementseite.

Hier kann man auf den ersten Blick gar nicht so viel machen. Rechts oben kann man mit einem Klick auf das Profilbild den Stack-Ordner erneut durchsuchen, um Änderungen festzustellen. Außerdem gibt es die Möglichkeit für die Einstellungen. Mehr als Passwort ändern oder wie Dockge aussehen soll ist darunter allerdings nicht verborgen.

Zudem könnt ihr dort die Konsole aufmachen, welche Allerding standardmäßig deaktiviert ist. Möchte man diese aktivieren muss man als Environment Variable zusätzlich DOCKGE_ENABLE_CONSOLE=true setzen.

Docker WebUI im Überblick

Docker-Stack erstellen

Über kopieren der Compose-File

Oben links auf „+ Compose“ geklickt öffnet sich die Webseite um einen neuen Stack zu erstellen. Standardmäßig sieht man dort eine Beispiel-Konfiguration für nginx.

Es gibt jetzt mehrere Möglichkeiten. Die Sinnvollste ist, sich vorher eine Docker-Compose File zu schreiben und dann diese in das Editor-Feld reinzukopieren. Ich habe mir hier zur Versinnbildlichung mal die Docker-Compose von JDownloader (JDownloader als Docker Container bereitstellen) hineinkopiert.

Konfigurationsseite zum Erstellen eines neuen Docker Stacks in Dockge.

Es wurde automatisch erkannt, welcher Container benötigt wird. Man gibt dem Stack noch einen tollen Namen, hier jdownloader, und klickt anschließend auf „Deployen“. Es wird einem die Ausgabe angezeigt und wenn alles durchgelaufen ist, bekommt man die Konfigurationsseite für den nun laufenden Stack angezeigt.

Hier sieht man nun auch direkt die Logs des entsprechenden Stacks. Man könnte Änderungen an der Docker-Compose File rechts machen und anschließend mit Aktualisieren die Änderungen übernehmen. Alles sehr einfach und entspannt.

Schauen wir doch mal, was Dockge auf Dateisystemebene getan hat. Man sieht hier sehr gut, wie für den Stack ein Ordner „jdownloader“ im Ordner „docker“ erstellt wurde. Außerdem wurden entsprechend der Docker-Compose File die Ordner „config“ und „downloads“ erstellt.

Dateisystem geprüft, was Dockge erstellt.

Klickt man im Übrigen in der Weboberfläche auf die Portnummer, wird auch gleich die Webseite von JDownloader geöffnet. Einfacher kann man Docker Stacks nicht erstellen und verwalten.

Manuelle Eingabe über die GUI

Solltet ihr euch nicht sicher sein, wie die Syntax der Docker-Compose aussieht gibt es dafür auch eine Lösung: Ihr verwendet einfach die GUI und gebt alle notwendigen Daten manuell ein. Hier mal anhand des Beispiels Grocy (Grocy – Ein ERP-System für Vorräte).

Docker Stack manuell per GUI in Dockge eintragen und erstellen.

Zuerst wieder einen Namen für den Stack eingeben. Anschließend erstellt ihr einen Container, hier Grocy mit Großbuchstaben am Anfang. Nun fügt ihr ganz normal die notwendigen Argumente wie Image, Ports, Volume und Environment Variablen hinzu und klickt anschließend wieder auf „Deployen“.

Und schon läuft Grocy auf dem angegebenen Port. Wenn notwendig kann man auch über den „Bash“-Knopf in die Bash bzw. Shell des entsprechenden Containers. Das ist beispielsweise bei Nextcloud oder Mastodon manchmal ganz hilfreich, wenn man direkt auf OS-Ebene im Container Befehle ausführen muss.

Andere Dockge Installation hinzufügen

Auf der Startseite sieht man nun ganz einfach, welche Docker Stacks laufen und welche nicht. Zusätzlich gibt es die Möglichkeit einen Docker Run-Befehl in eine Docker-Compose File umzuwandeln. Viel interessanter ist aber, dass ihr euch auch mit anderen Dockge-Installationen verbinden könnt. Dazu einfach die entsprechende IP-Adresse und Port mit den entsprechenden Anmeldedaten eintragen und auf „Verbinden“ klicken.

Andere Dockge Installation über die Agenten hinzugefügt.

Nun kann ich also auch meine anderen Docker Stacks auf dem anderen Server ganz einfach über eine einzige GUI administrieren. Wunderbar einfach.

HINWEIS: Ihr seht vielleicht, dass auf meinem anderen Server Dockge mit angezeigt wird. Das ist, weil Dockge dort ebenfalls im Ordner „docker“ vorhanden ist. Macht das nicht oder seid zumindest vorsichtig. Dockge über die eigene WebUI zu aktualisieren ist natürlich nicht möglich. Der Container startet sich neu und dann können natürlich die Befehle nicht weiter ausgeführt werden. Ist mir beim schnellen Klicken bereits passiert, daher achtet ggf. darauf, dass ihr es wie in der Anleitung beschrieben lieber in einen anderen Ordner ablegt.

Dockge aktualisieren

Dockge muss natürlich auch immer mal wieder aktualisiert werden. Dazu geht ihr dann zurück in die Shell in den Ordner „dockge“ und führt dort nacheinander sudo docker compose pull und sudo docker compose up -d aus. Dann wird das aktuelle Image heruntergeladen und der Container mit dem neuen Image neu erstellt. Schaut außerdem immer mal wieder in die Images rein, um nicht mehr notwendige Images mit sudo docker image prune zu entfernen. Da können sich ggf. einige Gigabyte ansammeln.

Schreibe einen Kommentar

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