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.
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.
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:
| Ort | Inhalt |
|---|---|
| Einstellungen → Container | Alle Container des Servers, mit allen Aktionen |
| Einstellungen → App → Docker Anwendungen | Nur 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:
| App | Container |
|---|---|
edulution-mail | |
| Klassenzimmer | edulution-veyon |
| Desktop-Bereitstellung | edulution-guacamole |
| Lernplattform (Moodle) | edulution-moodle |
| VPN-Zugang (WireGuard) | edulution-wireguard |
| Dateien | je 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.
| Spalte | Beschreibung |
|---|---|
| Badge | Farbpunkt: grün = läuft, rot = läuft nicht |
| Container-Name | Name des Containers, davor ein Symbol für den Update-Zustand – siehe Verfügbare Updates erkennen |
| Image | Docker-Image samt Tag |
| Betriebszustand | läuft, erstellt, neu gestartet, pausiert, gestoppt oder tot |
| Status | Laufzeit bzw. Zeitpunkt der letzten Zustandsänderung (z. B. Up 2 days) |
| Port | Nach außen veröffentlichte Ports |
| Erstellt am | Erstellungszeitpunkt des Containers |
| Zuletzt geprüft | Wann der Update-Zustand des Containers zuletzt ermittelt wurde |
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äche | Sichtbar, wenn … | Wirkung |
|---|---|---|
| Erstellen | nichts ausgewählt ist | Öffnet die Plugin-Installation |
| Starten | kein ausgewählter Container läuft | Startet die Container |
| Stoppen | alle ausgewählten Container laufen (oder neu starten) | Stoppt die Container regulär |
| Neu starten | mindestens ein Container ausgewählt ist | Startet die Container neu |
| Beenden | alle ausgewählten Container laufen (oder neu starten) | Beendet die Container erzwungen (kill) |
| Löschen | kein ausgewählter Container läuft | Entfernt die Container nach Rückfrage |
| Update | mindestens ein Container ausgewählt ist | Lä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üfen | immer | Prüft sofort, ob ein neueres Image bereitliegt – für die Auswahl, sonst für alle Container |
| Neu laden | immer | Lädt die Tabelle neu |
| Terminal | Desktop-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.“.
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.
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.
- Klicken Sie in Einstellungen → Container auf Erstellen (Plus-Symbol), ohne dass eine Zeile ausgewählt ist.
- 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.
- Der Installationsdialog „<App>-Plugins installieren“ öffnet sich. Verlangt die Vorlage Angaben – etwa einen Hostnamen oder ein Token –, füllen Sie die eingeblendeten Felder aus.
- Installieren startet den Vorgang. Das Textfeld zeigt den Fortschritt live an: Docker Image wird abgerufen …, Docker Container wird erstellt …, abschließend Container erfolgreich erstellt.
- 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:
| Feld | Erläuterung |
|---|---|
| Installations-Token | Token aus dem Edulution-Manager (nur beim Edulution-Manager-Agent) |
| Hostname | Hostname des Mailservers, kann von der edulution-Domain abweichen |
| IP-Netzwerk, Adresse, DNS-Server | Netzwerkparameter der WireGuard-Installation |
| WWW-Root, Admin E-Mail, Admin Passwort, Website-Name | Grunddaten 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:
/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.
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.
- Einstellungen → Container → Erstellen
- Im Dialog Plugin zur Installation auswählen den Eintrag Edulution-Manager wählen und mit Auswählen bestätigen.
- Im Feld Installations-Token den Token eintragen, der zuvor im Edulution-Manager erzeugt wurde.
- 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 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.
| Symbol | Bedeutung |
|---|---|
| Grünes Häkchen | Aktuell – der Container führt das Image aus, das derzeit hinter seinem Tag liegt. |
| Gelber Kreis mit Pfeil nach oben | Update verfügbar – in der Registry liegt hinter demselben Tag ein neueres Image. |
| Graues Fragezeichen | Nicht prüfbar – der Zustand ließ sich nicht ermitteln. Der Tooltip zeigt nicht diese Bezeichnung, sondern den Grund. |
| Blasses graues Fragezeichen | Noch 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:
| Grund | Ursache |
|---|---|
| Auf Digest festgelegt | Der Container ist auf eine feste Image-Kennung statt auf einen Tag festgelegt. Einen Tag, dem er folgen könnte, gibt es nicht. |
| Kein lokaler Digest | Zum 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 fehlgeschlagen | Die 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. |
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.
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.
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:
- Das im Container hinterlegte Image wird neu geladen (
pull). - Bringt der Vorgang keine neue Fassung, endet er mit dem Hinweis „<Container> ist bereits aktuell.“ – der Container läuft unverändert weiter.
- 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.“
- 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.
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
- Wählen Sie die – gestoppten – Container aus.
- Klicken Sie auf Löschen.
- 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:
- Terminal anklicken.
- Im Dialog SSH Anmeldedaten Benutzername und Passwort des Servers eingeben.
- 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
| Meldung | Ursache und Abhilfe |
|---|---|
| Docker-Verbindung fehlgeschlagen | Die 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 werden | Das Image ließ sich nicht laden. Prüfen Sie die Internetverbindung des Servers und den Zugriff auf die Registry. |
| Docker Container konnte nicht erstellt werden | Die 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 werden | Die Aktion wurde abgewiesen. Bei einem geschützten Container ist das beabsichtigt. |
| Docker Container konnte nicht aktualisiert werden | Das 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üfung | Auf 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 fehlgeschlagen | Die 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:
docker logs -f edulution-api
Siehe auch
- Einstellungen – die übrigen Bereiche der globalen Einstellungen
- Administration – Updates, Ports und allgemeine Admin-Aufgaben
- Passwortänderung einrichten – Zugang zur Keycloak-Administrationsoberfläche
- Satelliten – Container an entfernten Standorten
Diese Seite richtet sich an eine andere Zielgruppe
Sie ist geschrieben für: Admin · Betrieb, Admin · Einrichtung. Ihre aktuelle Auswahl blendet sie deshalb aus.