Das sichere Update-Modell
Bei einem Update ändern sich mindestens das Container-Image und die über TYPE und VERSION gewählte Serversoftware. Plugins, Konfigurationsformate, Java und Weltdaten können ebenfalls betroffen sein.
Deshalb besteht ein sicherer Ablauf aus fünf Teilen:
- Ausgangs- und Zielversion fest einstellen
- anwendungskonsistentes Backup und vollständige Kopie im gestoppten Zustand erstellen
- immer nur einen Versionsschritt ändern
- den Start prüfen, bevor Spieler wieder beitreten
- bei Fehlern Konfiguration und Daten gemeinsam wiederherstellen
Verlasse dich nicht darauf, VERSION nach einem Fehlstart einfach zurückzudrehen. Die neue Software könnte die Welt bereits migriert haben.
Voraussetzungen
- ein Compose-Service namens
mc - Serverdaten als
./data:/dataeingebunden - genug freier Speicherplatz für eine vollständige Kopie von
./data - funktionierendes RCON für die Prüfkommandos
- ein getesteter Backup-Ablauf, etwa mit docker-mc-backup
Ausgangsversion fest einstellen
Vermeide VERSION: LATEST in Produktion. Laut Image-Dokumentation kann bei einem Neustart dadurch ein neueres Server-JAR geladen werden.
Dieses Beispiel legt Paper und Java ausdrücklich fest:
services:
mc:
image: itzg/minecraft-server:java25
restart: unless-stopped
ports:
- "25565:25565"
environment:
EULA: "TRUE"
TYPE: PAPER
VERSION: "26.1.2"
volumes:
- ./data:/data
Ersetze die Beispielwerte durch die zu deinem Server passende Version und Java-Variante. Prüfe dann den Ist-Zustand:
docker compose config
docker compose exec mc rcon-cli version
docker compose ps
Schritt 1: Kompatibilität vor der Downtime klären
Lies die Release Notes der Zielversion und aller wichtigen Plugins. Kombiniere kein Minecraft-Update, keinen Wechsel der Serversoftware und keine unabhängigen Konfigurationsänderungen in einem Wartungsfenster.
Bei Paper solltest du kompatible Plugins im selben geplanten Neustart aktualisieren. Paper warnt ausdrücklich davor, Server- oder Plugin-JARs im laufenden Betrieb zu ersetzen.
Schritt 2: zwei Wiederherstellungspunkte anlegen
Starte zunächst das reguläre koordinierte Backup:
docker compose exec backup backup now
docker compose logs --tail=100 backup
Stoppe danach alle Services mit Zugriff auf die Daten und erstelle ein vollständiges Archiv. Diese zweite Kopie enthält auch Plugin-JARs und Konfigurationen, die ein weltzentriertes Backup unter Umständen auslässt:
docker compose stop backup mc
pre_update_archive="pre-update-$(date +%Y%m%d-%H%M%S).tgz"
tar -czf "$pre_update_archive" compose.yml data
tar -tzf "$pre_update_archive" | head
Der letzte Befehl listet den Inhalt, bevor du dem Archiv vertraust. Bewahre es auf, bis der aktualisierte Server auch bei normalem Spielbetrieb stabil war.
Schritt 3: Update ausführen
Ändere VERSION und nur bei Bedarf das Java-Image. Prüfe anschließend die Konfiguration und starte unter Beobachtung:
docker compose config
docker compose pull mc
docker compose up -d
docker compose logs -f mc
Warte auf die normale Bereitschaftsmeldung. Ein laufender Container allein bedeutet noch nicht, dass die Welt fehlerfrei geladen wurde.
Schritt 4: Ergebnis prüfen
docker compose exec mc rcon-cli version
docker compose exec mc rcon-cli list
docker compose exec mc rcon-cli save-all flush
docker compose logs --since=10m mc
Kontrolliere zusätzlich:
- richtige Welt und Dimensionen
- alle zwingend benötigten Plugins aktiv
- Beitritt, Interaktion und erneuter Login eines Spielers
- ein erfolgreiches neues Backup nach dem Update
Sicher zurückrollen
Schlägt die Prüfung fehl, stoppe den Stack sofort. Sichere den fehlerhaften Stand für die Analyse und stelle dann den kompletten Vorher-Zustand wieder her:
docker compose down
mv data "data.failed-$(date +%Y%m%d-%H%M%S)"
tar -xzf pre-update-YYYYMMDD-HHMMSS.tgz
docker compose up -d
docker compose logs -f mc
Ersetze den Archivnamen konkret. Da das Archiv compose.yml und data enthält, kehren alte Softwareauswahl und alte Welt gemeinsam zurück. Für eine Wiederherstellung aus dem normalen Backup nutze das vollständige Docker-Restore-Runbook.
Fehlerbehebung
| Symptom | Wahrscheinliche Ursache | Sichere Reaktion |
|---|---|---|
| Nach einem normalen Neustart läuft eine neue Version | VERSION stand auf LATEST | Version fest einstellen; bei migrierten Daten wiederherstellen |
| Server wird nicht bereit | Java-, Versions- oder Plugin-Konflikt | Ersten Startfehler lesen und Kompatibilität an einer Kopie klären |
| Plugins fehlen oder sind rot | Inkompatibles, doppeltes oder abhängiges JAR | Im gestoppten Zustand den passenden Plugin-Satz herstellen |
| Welt wirkt zurückgesetzt | Falsches LEVEL, Mount oder Arbeitsverzeichnis | Sofort stoppen und vor weiterem Spielen wiederherstellen |
| Alte Version lehnt die Welt ab | Neue Software hat Daten bereits migriert | Passenden alten Datenstand wiederherstellen, Downgrade nicht erzwingen |
Nächste Schritte
- Verwalte den Plugin-Lebenszyklus mit Paper-Plugins und Docker Compose.
- Sichere das nächste Wartungsfenster mit automatischen Minecraft-Backups ab.
- Für ein Modpack gilt das Modrinth-Modpack-Runbook statt eines Paper-Updates.