setupmc.com

Minecraft mit Docker Compose aktualisieren und zurückrollen

Sichere Konfiguration und Daten vor dem Update und stelle beide bei einem Rollback gemeinsam wieder her.

Docker-Betrieb
setupmc.com Team

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:

  1. Ausgangs- und Zielversion fest einstellen
  2. anwendungskonsistentes Backup und vollständige Kopie im gestoppten Zustand erstellen
  3. immer nur einen Versionsschritt ändern
  4. den Start prüfen, bevor Spieler wieder beitreten
  5. 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:/data eingebunden
  • 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

SymptomWahrscheinliche UrsacheSichere Reaktion
Nach einem normalen Neustart läuft eine neue VersionVERSION stand auf LATESTVersion fest einstellen; bei migrierten Daten wiederherstellen
Server wird nicht bereitJava-, Versions- oder Plugin-KonfliktErsten Startfehler lesen und Kompatibilität an einer Kopie klären
Plugins fehlen oder sind rotInkompatibles, doppeltes oder abhängiges JARIm gestoppten Zustand den passenden Plugin-Satz herstellen
Welt wirkt zurückgesetztFalsches LEVEL, Mount oder ArbeitsverzeichnisSofort stoppen und vor weiterem Spielen wiederherstellen
Alte Version lehnt die Welt abNeue Software hat Daten bereits migriertPassenden alten Datenstand wiederherstellen, Downgrade nicht erzwingen

Nächste Schritte

Java-Konfigurator

Compose-Datei erstellen

Wähle Server-Software, Version und Einstellungen und lade deine Konfiguration herunter.

Java-Konfigurator öffnen

Häufige Fragen