Docker & Container-Konzept in Pterodactyl
Pterodactyl basiert konsequent auf Docker und nutzt Container nicht nur als „Verpackung“, sondern als zentrales Isolations-, Sicherheits- und Ressourcensteuerungsinstrument.
Ein korrektes Verständnis dieses Konzepts ist entscheidend, um Performance-Probleme, Sicherheitslücken und instabile Game-Server zu vermeiden.
1. Warum Docker die Grundlage von Pterodactyl ist
Docker ermöglicht Pterodactyl:
- saubere Isolation zwischen Game-Servern
- exakte Ressourcenbegrenzung
- reproduzierbare Server-Umgebungen
- kontrollierte Ausführung fremden Codes (Mods, Plugins)
Ohne Docker wäre ein sicherer Multi-Tenant-Betrieb faktisch nicht möglich.
2. Container ≠ klassischer Docker-Betrieb
Pterodactyl nutzt Docker bewusst anders als typische Web-Stacks:
- keine Docker Compose Stacks
- keine Service-Orchestrierung
- keine langlebigen System-Container
Jeder Container repräsentiert:
genau einen Game-Server
3. Container-Lifecycle eines Game-Servers
3.1 Erstellung
- Panel definiert Server anhand eines Eggs
- Wings erstellt Container aus festem Image
- Volumes werden eingebunden
3.2 Laufzeit
- Container läuft isoliert
- Ressourcenlimits werden kernelbasiert enforced
- Logs werden gestreamt
3.3 Stop / Neustart
- Graceful Stop, wenn möglich
- Kein Persistenzverlust durch Volumes
3.4 Löschung
- Container wird entfernt
- Daten bleiben nur erhalten, wenn explizit konfiguriert
4. Storage-Handling
Persistente Daten werden über Docker Volumes oder Bind-Mounts bereitgestellt.
4.1 Typische Inhalte in Volumes
- World-Daten
- Configs
- Mods / Plugins
4.2 Risiken
- Langsames Host-Storage → Lag
- Keine Backups → Datenverlust
Container selbst sind immer als flüchtig zu betrachten.
5. Netzwerk-Handling
Pterodactyl nutzt Docker-Netzwerke, kombiniert mit direktem Port-Mapping:
- Jeder Game-Server bindet definierte Ports
- Keine internen Service-Netzwerke
Game-Server sind per Design öffentlich erreichbar, daher ist saubere Port-Kontrolle zwingend erforderlich.
6. Ressourcenbegrenzung (kritisch)
Pterodactyl nutzt Docker cgroups für:
- CPU-Limits
- RAM-Limits
- IO-Limits (indirekt)
6.1 Wichtige Realität
- RAM-Limit ≠ RAM-Nutzung
- CPU-Limits schützen nicht vor Lag
Game-Server reagieren extrem empfindlich auf:
- CPU-Contention
- IO-Wait
- RAM-Pressure
7. Sicherheitsimplikationen
7.1 Was Docker schützt
- Host-Dateisystem
- Andere Game-Server
7.2 Was Docker NICHT schützt
- Überlastung des Hosts
- Fehlkonfigurierte Netzwerke
- Unsichere Eggs
"Docker ist ein Werkzeug – kein Allheilmittel."
8. Performance-Fallen aus der Praxis
- Zu viele Container auf einem Node
- CPU-Overcommitment
- Shared Storage mit hoher Latenz
- Swap aktiv
Diese Fehler führen fast immer zu:
- Tick-Lag
- Rubberbanding
- Server-Crashes
9. Best Practices (Venasty Systems Standard)
- Ein Node nur für Pterodactyl
- Keine Fremdcontainer auf Nodes
- Realistische Limits statt Marketing-Werte
- Storage-Performance priorisieren
10. Fazit
Das Docker-Konzept von Pterodactyl ist technisch sauber, aber kompromisslos ehrlich:
- schlechte Hardware bleibt schlecht
- Überbuchung bleibt Überbuchung
Wer Docker und Ressourcenmanagement versteht, kann mit Pterodactyl stabile, sichere Game-Server betreiben.
Venasty Systems betrachtet das Container-Konzept als zentrale Entscheidungsgrundlage für jede Pterodactyl-Plattform.