Zum Hauptinhalt springen

Container-Verwaltung

Die edulution Plattform verwaltet die Docker-Container Ihres Servers direkt aus der Oberfläche heraus: Sie sehen alle Container mit ihrem aktuellen Zustand, installieren die Container zusätzlicher Dienste (Plugins), aktualisieren sie auf das neueste Image und steuern ihren Lebenszyklus – starten, stoppen, neu starten, erzwungen beenden und löschen.

Nur Global-Admin

Die Container-Verwaltung ist ausschließlich für Global-Admins zugänglich. Alle Aufrufe der zugehörigen Schnittstelle sind serverseitig auf diese Rolle beschränkt.

Eingriff in den laufenden Betrieb

Die Aktionen dieser Seite wirken unmittelbar auf die Docker-Container Ihres Servers. Ein gestoppter oder gelöschter Container bedeutet einen Ausfall des betroffenen Dienstes. Führen Sie Änderungen nur mit entsprechendem Docker-Know-how und – bei Updates – möglichst nach einem Snapshot Ihrer VM durch.

Zugriff​

Es gibt zwei Einstiegspunkte:

OrtInhalt
Einstellungen → ContainerAlle Container des Servers, mit allen Aktionen
Einstellungen → App → Docker AnwendungenNur die Container der jeweiligen App, zum Installieren des zugehörigen Plugins

Die Gesamtübersicht erreichen Sie als Global-Admin über das Zahnrad-Symbol im Menü: Der Bereich Einstellungen öffnet sich mit der Registerkarte Container.

Eine App-eigene Sektion Docker Anwendungen besitzen die Apps, deren Dienste als Container betrieben werden:

AppContainer
E-Mailedulution-mail
Klassenzimmeredulution-veyon
Desktop-Bereitstellungedulution-guacamole
Lernplattform (Moodle)edulution-moodle
VPN-Zugang (WireGuard)edulution-wireguard
Dateienje nach aktivem Editor edulution-onlyoffice, edulution-collabora oder edulution-eurooffice

Die Container-Übersicht​

Die Tabelle listet alle Container des Docker-Hosts – auch gestoppte. Über das Suchfeld (Suche nach Container-Name) filtern Sie die Liste, über die Spaltenköpfe sortieren Sie sie.

SpalteBeschreibung
BadgeFarbpunkt: grün = läuft, rot = läuft nicht
Container-NameName des Containers, davor ein Symbol für den Update-Zustand – siehe Verfügbare Updates erkennen
ImageDocker-Image samt Tag
Betriebszustandläuft, erstellt, neu gestartet, pausiert, gestoppt oder tot
StatusLaufzeit bzw. Zeitpunkt der letzten Zustandsänderung (z. B. Up 2 days)
PortNach außen veröffentlichte Ports
Erstellt amErstellungszeitpunkt des Containers
Zuletzt geprüftWann der Update-Zustand des Containers zuletzt ermittelt wurde
Die Tabelle aktualisiert sich selbst

Die edulution Plattform hört auf die Ereignisse des Docker-Daemons. Startet, stoppt oder verschwindet ein Container – auch außerhalb der UI, etwa per SSH –, aktualisiert sich die Tabelle automatisch. Die Schaltfläche Neu laden erzwingt zusätzlich ein sofortiges Neuladen.

Aktionen​

Wählen Sie eine oder mehrere Zeilen aus. Die Schaltflächen der Aktionsleiste erscheinen abhängig vom Zustand der Auswahl:

SchaltflächeSichtbar, wenn …Wirkung
Erstellennichts ausgewählt istÖffnet die Plugin-Installation
Startenkein ausgewählter Container läuftStartet die Container
Stoppenalle ausgewählten Container laufen (oder neu starten)Stoppt die Container regulär
Neu startenmindestens ein Container ausgewählt istStartet die Container neu
Beendenalle ausgewählten Container laufen (oder neu starten)Beendet die Container erzwungen (kill)
Löschenkein ausgewählter Container läuftEntfernt die Container nach Rückfrage
Updatemindestens ein Container ausgewählt istLädt das neueste Image und erstellt die Container neu – siehe Container aktualisieren. Gesperrt, solange eine aus Ihrer Sitzung gestartete Update-Prüfung läuft
Auf Updates prüfenimmerPrüft sofort, ob ein neueres Image bereitliegt – für die Auswahl, sonst für alle Container
Neu ladenimmerLädt die Tabelle neu
TerminalDesktop-Bereitstellung konfiguriert und Guacamole läuftÖffnet eine SSH-Sitzung zum Server

Jede Aktion wird mit einer kurzen Meldung bestätigt, etwa „Container gestartet.“ oder „Container erzwungen gestoppt.“.

Mehrfachauswahl

Alle Aktionen außer Erstellen und Terminal wirken auf die gesamte Auswahl. Die Container werden dabei parallel angesprochen; eine feste Reihenfolge gibt es nicht. Bei voneinander abhängigen Containern gehen Sie daher besser einzeln vor.

Geschützte Container​

Solange ein Container in der edulution-Basisinstallation eingebunden ist, gilt dieser als geschützt. Deshalb werden dann keine Aktionsschaltflächen angeboten.

Ein Stoppen oder Löschen dieser Container würde die edulution Plattform selbst außer Betrieb setzen. Die Sperre gilt zusätzlich serverseitig: Auch ein direkter Aufruf der Schnittstelle wird für Start, Stopp, Neustart, Beenden und Löschen abgewiesen.

Enthält die Auswahl einen geschützten Container, verschwindet die gesamte Aktionsleiste – auch für die übrigen ausgewählten Container. Nehmen Sie den geschützten Container aus der Auswahl, um mit den anderen weiterzuarbeiten.

Die Basisinstallation aktualisieren

Für die geschützten Container ist das Update über die Oberfläche nicht vorgesehen. Aktualisieren Sie diese wie unter Administration → Updates beschrieben auf der Konsole des Servers.

Container installieren​

Die Container zusätzlicher Dienste werden nicht von Hand angelegt, sondern aus einer gepflegten Compose-Vorlage installiert. Die Vorlagen stammen aus dem Repository edulution-plugins und werden bei jeder Installation frisch geladen, sodass Sie stets die aktuelle Fassung erhalten.

  1. Klicken Sie in Einstellungen → Container auf Erstellen (Plus-Symbol), ohne dass eine Zeile ausgewählt ist.
  2. Wählen Sie im Dialog Plugin zur Installation auswählen die gewünschte App bzw. den Edulution-Manager aus und bestätigen Sie mit Auswählen.
  3. Der Installationsdialog „<App>-Plugins installieren“ öffnet sich. Verlangt die Vorlage Angaben – etwa einen Hostnamen oder ein Token –, füllen Sie die eingeblendeten Felder aus.
  4. Installieren startet den Vorgang. Das Textfeld zeigt den Fortschritt live an: Docker Image wird abgerufen …, Docker Container wird erstellt …, abschließend Container erfolgreich erstellt.
  5. Schließen Sie den Dialog mit Schließen.

Alternativ starten Sie die Installation direkt aus der App: Einstellungen → App → Docker Anwendungen → Installieren. Der Ablauf ist identisch, die App ist dabei bereits vorausgewählt.

Abgefragte Werte​

Welche Felder erscheinen, hängt von der Vorlage ab. Gebräuchlich sind:

FeldErläuterung
Installations-TokenToken aus dem Edulution-Manager (nur beim Edulution-Manager-Agent)
HostnameHostname des Mailservers, kann von der edulution-Domain abweichen
IP-Netzwerk, Adresse, DNS-ServerNetzwerkparameter der WireGuard-Installation
WWW-Root, Admin E-Mail, Admin Passwort, Website-NameGrunddaten der Moodle-Installation

Zugangsdaten, die edulution bereits kennt – etwa API-Schlüssel der App-Konfiguration –, werden automatisch eingesetzt und nicht abgefragt. Passwörter und Schlüssel, die nur der Container selbst benötigt (z. B. die Datenbank-Passwörter von Moodle), erzeugt edulution bei der ersten Installation und verwendet sie bei einer erneuten Installation unverändert weiter.

Wo die Konfiguration abgelegt wird​

Nach erfolgreicher Installation speichert die API die verwendete Compose-Datei samt der eingesetzten Werte auf dem Server:

Ablageort der Container-Konfiguration
/srv/docker/edulution-ui/data/apps/<app>/<container-name>/docker-compose.yml

Diese Datei ist die Referenz für spätere Installationen: Aus ihr werden bereits erzeugte Geheimnisse wieder eingelesen, sodass eine Neuinstallation nicht ungewollt neue Passwörter setzt.

Enthält Zugangsdaten

Die abgelegte docker-compose.yml enthält die eingesetzten Passwörter und Token im Klartext. Beziehen Sie das Verzeichnis in Ihre Sicherung ein und behandeln Sie es wie andere Geheimnisse Ihres Servers.

Den Edulution-Manager-Agent installieren​

Der Edulution-Manager-Agent (edulution-manager-agent) verbindet Ihre Installation mit dem zentralen Edulution-Manager. Er wird wie ein Plugin installiert, erscheint in der Auswahlliste aber nicht als App, sondern als eigener Eintrag Edulution-Manager.

  1. Einstellungen → Container → Erstellen
  2. Im Dialog Plugin zur Installation auswählen den Eintrag Edulution-Manager wählen und mit Auswählen bestätigen.
  3. Im Feld Installations-Token den Token eintragen, der zuvor im Edulution-Manager erzeugt wurde.
  4. Mit Installieren bestätigen und den Fortschritt abwarten.

Nach der Installation erscheint edulution-manager-agent wie jeder andere Container in der Übersicht und lässt sich dort auch starten, stoppen und aktualisieren.

Der Agent aktualisiert sich selbst

Der Agent kann sein eigenes Update anstoßen, ohne dass sich jemand anmeldet. edulution nimmt diese Anforderung nur an, wenn sie tatsächlich aus dem Container edulution-manager-agent stammt: Die API ermittelt zur anfragenden IP-Adresse den zugehörigen Container und weist die Anforderung andernfalls ab. Ein entsprechender Versuch wird protokolliert.

Verfügbare Updates erkennen​

Einmal täglich – um 04:30 UTC – prüft die edulution Plattform für jeden Container, ob in der Registry ein neueres Image bereitliegt. Beim Start der Plattform prüft sie zusätzlich, wenn noch kein Prüfergebnis vorliegt oder die jüngste Prüfung mindestens 24 Stunden zurückliegt. Dabei wird kein Image heruntergeladen: Verglichen wird allein die Kennung (der Digest) des Images, das der Container ausführt, mit der Kennung, die derzeit hinter seinem Tag liegt. Ist der Docker-Socket nicht in den Container edulution-api eingebunden, findet keine Prüfung statt.

Geprüft wird immer innerhalb des Tags, auf den der Container festgelegt ist. Ein Container auf 26.4 wird gegen 26.4 verglichen; eine neuere Nebenversion wie 26.5 bleibt unberücksichtigt. Der Vergleich entspricht damit genau dem, was ein docker pull desselben Tags laden würde. Ein Container auf einem unveränderlichen Tag wie 4.9.1.12 meldet folgerichtig nie ein Update.

Das Ergebnis steht als Symbol vor dem Container-Namen; die Spalte Zuletzt geprüft nennt den Zeitpunkt der letzten Ermittlung. Fahren Sie mit dem Zeiger über das Symbol, um seine Bedeutung als Text zu sehen.

SymbolBedeutung
Grünes HäkchenAktuell – der Container führt das Image aus, das derzeit hinter seinem Tag liegt.
Gelber Kreis mit Pfeil nach obenUpdate verfügbar – in der Registry liegt hinter demselben Tag ein neueres Image.
Graues FragezeichenNicht prüfbar – der Zustand ließ sich nicht ermitteln. Der Tooltip zeigt nicht diese Bezeichnung, sondern den Grund.
Blasses graues FragezeichenNoch nicht geprüft – für den Container liegt noch kein Prüfergebnis vor, etwa weil er außerhalb der Oberfläche angelegt wurde. Erfasst wird er von der nächsten Prüfung aller Container oder von einer Prüfung, für die er ausgewählt ist. Über die Oberfläche installierte Container werden gleich nach der Installation geprüft, sofern gerade keine andere Prüfung läuft.

Diese Gründe kann der Tooltip nennen:

GrundUrsache
Auf Digest festgelegtDer Container ist auf eine feste Image-Kennung statt auf einen Tag festgelegt. Einen Tag, dem er folgen könnte, gibt es nicht.
Kein lokaler DigestZum laufenden Image ließ sich keine Kennung ermitteln, gegen die verglichen werden könnte – etwa bei einem lokal gebauten Image, das nie aus einer Registry geladen wurde. Die Registry wird in diesem Fall gar nicht erst befragt.
Registry-Abfrage fehlgeschlagenDie Registry hat die Anfrage abgelehnt oder nicht innerhalb von 15 Sekunden beantwortet – etwa weil sie Zugangsdaten verlangt, der Tag dort nicht (mehr) existiert oder sie nicht erreichbar ist.
Nicht prüfbar heißt nicht aktuell

Ein Container, dessen Zustand sich nicht ermitteln lässt, wird bewusst nicht als Aktuell geführt. Ob für ihn ein Update vorliegt, bleibt offen.

Die Schaltfläche Auf Updates prüfen stößt die Prüfung sofort an: Sind Zeilen ausgewählt, werden genau diese geprüft, andernfalls alle Container. Geprüft werden jeweils 4 Container gleichzeitig – bei vielen Containern oder einer langsamen Registry braucht der Vorgang daher etwas Zeit. Währenddessen ist die Schaltfläche gesperrt, und sowohl ihr Symbol als auch ein Ladesymbol neben der Überschrift Container-Übersicht drehen sich.

Es läuft immer nur eine Prüfung

Die gesperrte Schaltfläche verhindert nur eine zweite Prüfung aus Ihrer eigenen Sitzung. Serverseitig läuft zu jedem Zeitpunkt höchstens eine Prüfung; eine weitere wird abgewiesen – siehe Fehlerbehebung.

Auch geschützte Container werden geprüft

Das Symbol erscheint für alle Container, also auch für die geschützten der Basisinstallation. Aktualisieren lassen sich diese über die Oberfläche weiterhin nicht; dafür gilt der Weg über die Konsole, siehe Administration → Updates.

Container aktualisieren​

Die Schaltfläche Update bringt die ausgewählten Container auf das neueste Image:

  1. Das im Container hinterlegte Image wird neu geladen (pull).
  2. Bringt der Vorgang keine neue Fassung, endet er mit dem Hinweis „<Container> ist bereits aktuell.“ – der Container läuft unverändert weiter.
  3. Andernfalls wird der Container gestoppt, entfernt und mit derselben Konfiguration – Umgebungsvariablen, Volumes, Ports, Netzwerke – aus dem neuen Image neu erstellt und gestartet. Abschließend erscheint „<Container> erfolgreich aktualisiert.“
  4. Ist keines der Updates fehlgeschlagen, wird der Update-Zustand der betroffenen Container unmittelbar danach neu ermittelt, sofern gerade keine andere Prüfung läuft; andernfalls bleibt das alte Symbol bis zur nächsten Prüfung stehen.
Der Container wird ersetzt, nicht verändert

Beim Update wird der Container gelöscht und neu angelegt. Daten in eingebundenen Volumes bleiben erhalten; Dateien, die ausschließlich im Dateisystem des Containers liegen, gehen verloren. Der Dienst ist während des Vorgangs kurz nicht erreichbar.

Container löschen​

  1. Wählen Sie die – gestoppten – Container aus.
  2. Klicken Sie auf Löschen.
  3. Der Dialog Container löschen nennt die betroffenen Container und weist darauf hin, dass sich der Vorgang nicht rückgängig machen lässt. Bestätigen Sie ihn.

Gelöscht wird nur der Container selbst. Volumes und die abgelegte docker-compose.yml bleiben bestehen, sodass sich der Dienst über Erstellen mit seinen bisherigen Daten wiederherstellen lässt.

Terminal (SSH)​

Ist die App Desktop-Bereitstellung konfiguriert und läuft der Container edulution-guacamole, erscheint in der Aktionsleiste zusätzlich Terminal. Darüber öffnen Sie eine SSH-Sitzung zum Server:

  1. Terminal anklicken.
  2. Im Dialog SSH Anmeldedaten Benutzername und Passwort des Servers eingeben.
  3. Mit Verbinden bestätigen – die Sitzung öffnet sich in einem Fenster innerhalb der edulution Plattform.

Über Minimieren legen Sie das Terminalfenster als Leiste ab; die SSH-Sitzung läuft dabei weiter, und beim Zurückholen erscheint das Fenster wieder in seiner vorherigen Größe und Position. Anders als eine VDI-Sitzung legt sich das Terminalfenster beim Wechsel in eine andere App jedoch nicht selbsttätig weg – minimieren Sie es dafür von Hand. Beim Schließen des Fensters wird die SSH-Verbindung getrennt.

Fehlt die Schaltfläche, prüfen Sie, ob unter Einstellungen → Desktop-Bereitstellung eine URL hinterlegt ist und ob der Guacamole-Container läuft – siehe edulution VDI: App einrichten.

Fehlerbehebung​

MeldungUrsache und Abhilfe
Docker-Verbindung fehlgeschlagenDie API erreicht den Docker-Socket nicht. Prüfen Sie, ob /var/run/docker.sock in den Container edulution-api eingebunden ist.
Docker Image konnte nicht gefunden werdenDas Image ließ sich nicht laden. Prüfen Sie die Internetverbindung des Servers und den Zugriff auf die Registry.
Docker Container konnte nicht erstellt werdenDie Installation ist fehlgeschlagen – häufig, weil ein Name oder Port bereits belegt ist. Der Fortschrittsbereich des Dialogs nennt den letzten erfolgreichen Schritt.
Docker Befehl konnte nicht ausgeführt werdenDie Aktion wurde abgewiesen. Bei einem geschützten Container ist das beabsichtigt.
Docker Container konnte nicht aktualisiert werdenDas Update wurde abgebrochen. Prüfen Sie über Neu laden, ob der Container läuft, und starten Sie ihn andernfalls neu.
Es läuft bereits eine Update-PrüfungAuf dem Server läuft noch eine andere Prüfung – etwa die nächtliche oder die eines anderen Global-Admins. Der angezeigte Zustand bleibt unverändert. Versuchen Sie es kurz darauf erneut.
Die Update-Prüfung ist fehlgeschlagenDie API konnte die Container nicht vom Docker-Daemon abfragen oder die Ergebnisse nicht in der Datenbank speichern. Scheitert nur die Registry-Abfrage einzelner Container, erscheint diese Meldung nicht; die Container werden dann als Nicht prüfbar geführt. Die genaue Ursache nennt das Log des API-Containers.

Zusätzliche Hinweise finden Sie im Log des API-Containers:

Log des API-Containers ansehen
docker logs -f edulution-api

Siehe auch​

Diese Seite richtet sich an eine andere Zielgruppe

Sie ist geschrieben für: Admin · Betrieb, Admin · Einrichtung. Ihre aktuelle Auswahl blendet sie deshalb aus.

Zur Übersicht