Anforderungen an einen VPS für Docker
Das Praktische an Docker: Das gesamte Projekt – Anwendung, Datenbank, Queue, Reverse Proxy – wird in einer einzigen Datei compose.yaml beschrieben und zieht in Minuten von Server zu Server um. An den virtuellen Server selbst stellt Docker allerdings Anforderungen, die eine gewöhnliche PHP-Website nicht hat. In der Tabelle oben sind bereits nur Tarife übrig, die sie erfüllen: KVM, ab 2 Kernen, 2 GB Arbeitsspeicher und 30 GB NVMe; zuerst kommen die, bei denen der Kern am günstigsten ist.
Virtualisierung: warum KVM
Container nutzen Mechanismen des Linux-Kernels: Namespaces, cgroups, Netzwerkbrücken, iptables. Unter KVM hat der VDS einen eigenen Kernel, und Docker lässt sich ohne Überraschungen aus dem offiziellen Repository installieren. Unter OpenVZ und LXC teilt sich der Server den Kernel mit dem Host: Docker startet dort entweder gar nicht oder nur mit speziellen Einstellungen des Anbieters, mit Netzwerkeinschränkungen und alten Versionen. Einen Abend mit Fehlersuche zu verbringen lohnt sich nicht – nehmen Sie gleich einen VPS mit KVM.
Der zweite Punkt ist der Storage-Treiber. Docker nutzt standardmäßig overlay2, das OverlayFS-Unterstützung im Kernel voraussetzt. Fehlt sie, weicht Docker auf den vfs-Treiber aus, der jede Image-Schicht komplett kopiert: Die Festplatte füllt sich um ein Vielfaches schneller, Builds laufen langsam. Den Treiber prüfen Sie direkt nach der Installation mit docker info.
Wie viel Arbeitsspeicher für mehrere Container?
Der Docker-Daemon selbst belegt etwa 100 MB. Den Rest rechnen Sie nach der Zusammensetzung Ihres Stacks:
- Nginx oder Caddy – 20–50 MB;
- Anwendung in Python, Node.js oder PHP-FPM – 100–300 MB pro Prozess;
- PostgreSQL oder MySQL – ab 200 MB, unter Last deutlich mehr;
- Redis – einige Dutzend Megabyte plus Datenvolumen.
Ein typischer Stack „Proxy + Anwendung + Datenbank + Redis“ kommt mit 1–1,5 GB aus, daher sind 2 GB ein vernünftiges Minimum; für mehrere Projekte auf einem Server sind 4 GB RAM besser. Setzen Sie Speicherlimits für die Container und legen Sie eine Swap-Datei an: Sonst reißt ein ausufernder Prozess über den OOM Killer seine Nachbarn mit.
Festplatte: Der Platz schwindet unbemerkt
Images wiegen zwischen einigen Dutzend Megabyte und einem Gigabyte, und bei jedem Update bleiben alte Versionen auf der Platte. Container-Logs werden standardmäßig ohne Größenbegrenzung geschrieben. Daraus ergeben sich drei Regeln: Richten Sie die Log-Rotation in daemon.json ein (Parameter max-size und max-file), führen Sie regelmäßig docker system prune aus und nehmen Sie nicht weniger als 30 GB. Wenn in den Containern Datenbanken laufen, achten Sie auf Tarife mit NVMe – bei zufälligen Schreibzugriffen ist der Unterschied zu SATA-SSDs deutlich spürbar.
Netzwerk, Sicherheit und Bezahlung
Eine häufige Falle: Über -p veröffentlichte Ports öffnet Docker an UFW vorbei, die Firewall-Regeln greifen dort nicht. Binden Sie interne Dienste an 127.0.0.1 oder nutzen Sie interne Compose-Netzwerke. Der Download von Images aus Docker Hub kann zeitweise gedrosselt oder eingeschränkt sein, daher lohnt es sich, vorab einen Registry-Mirror einzurichten. Die Zahlungswege für jeden Tarif finden Sie in der Spalte „Zahlung“, die Preise werden anhand der Angaben auf den Anbieterseiten aktualisiert.