Docker für Ihre Websites: 7 praktische Tipps für Container auf dem eigenen Server
Ein Redis-Cache, ein Queue-Worker, eine kleine interne API neben Ihrer Website — mit Docker wird das auf dem eigenen VPS sauber. Hier sind sieben Gewohnheiten, die ein aufgeräumtes Container-Setup von einem fragilen unterscheiden.
Eine Website zu betreiben hört selten bei PHP und einer Datenbank auf. Früher oder später wollen Sie einen Redis-Cache, einen Queue-Worker, eine kleine interne API oder einen Headless-Dienst direkt daneben. Docker ist der sauberste Weg dafür auf dem eigenen VPS — aber ein paar Gewohnheiten unterscheiden ein aufgeräumtes Setup von einem, das um 3 Uhr morgens ausfällt. Hier sind sieben, die sich lohnen.
1. Ein Netzwerk pro Website, und per Name kommunizieren
Stellen Sie die Container jeder Website in ihr eigenes Docker-Netzwerk und lassen Sie sie sich per Containername (redis:6379) statt über localhost erreichen. Dienste bleiben auffindbar, Portkonflikte zwischen Projekten entfallen, und die Container einer Website können nicht versehentlich mit denen einer anderen sprechen.
2. Veröffentlichen Sie keine unnötigen Ports
Eine Redis-Instanz oder interne API, die nur Ihre App nutzt, sollte nie an einen Host-Port gebunden sein. Erreichen Sie sie stattdessen über das interne Netzwerk. Jeder veröffentlichte Port ist Angriffsfläche — exponieren Sie nur, was die Öffentlichkeit wirklich braucht, in der Regel allein Ihre Web-App.
3. Fixieren Sie Image-Tags — vermeiden Sie :latest
redis:latest heute und redis:latest in drei Monaten können unterschiedliche Hauptversionen sein. Fixieren Sie auf etwas Konkretes wie redis:7-alpine (oder einen Digest), damit ein Rebuild einen Dienst, von dem Sie abhängen, nicht still ändert — oder kaputt macht.
4. Setzen Sie immer eine Restart-Policy
Ohne --restart=unless-stopped lässt ein Server-Neustart Ihre Nebendienste ausgeschaltet, und Ihre App wirft Verbindungsfehler, bis Sie es bemerken. Setzen Sie die Policy einmal, und die Container kommen nach Neustart oder Absturz von selbst zurück.
5. Sehen Sie Docker als Isolation, nicht als Sicherheitsmauer
Container teilen sich den Host-Kernel. Sie sind hervorragend, um Projekte aufgeräumt und Abhängigkeiten getrennt zu halten — aber sie sind keine harte Grenze zwischen nicht vertrauenswürdigen Mandanten. Setzen Sie Speicher- und CPU-Limits, damit ein Container die anderen nicht aushungert, und gehen Sie davon aus, dass ein kompromittierter Container seine Nachbarn unter Druck setzen kann.
6. Wissen, wie man Logs liest
Wenn etwas kaputtgeht, ist docker logs --tail 100 <name> die erste Anlaufstelle. Stellen Sie sicher, dass Ihre Container nach stdout/stderr loggen (die meisten offiziellen Images tun das bereits), damit die Ausgabe tatsächlich erfasst und nicht in einer Datei im Container vergraben wird.
7. Labeln Sie alles
Auf einem Server mit mehreren Websites wird docker ps schnell unübersichtlich. Versehen Sie jeden Container mit der zugehörigen Website (--label site=acme), damit Sie später filtern, prüfen und aufräumen können, ohne zu raten, welcher Container was antreibt.
Der einfache Weg
Jeder Tipp oben ist ein manueller Schritt, den man vergessen oder falsch machen kann. Genau diese Fleißarbeit sollte ein gutes Panel für Sie übernehmen. In ShadowPanel erhält ein Container, den Sie einer Website hinzufügen, automatisch sein eigenes Netzwerk pro Website, ein Website-Label, eine unless-stopped-Restart-Policy und validierte, nicht privilegierte Port-Zuordnungen — aus einer klaren Oberfläche, mit Logs und Start/Stopp/Neustart per Klick. Sie bekommen alle sieben guten Gewohnheiten standardmäßig, ohne ein einziges Flag auswendig zu lernen.
Container sauber betreiben
Kostenlose Stufe — 3 Sites, keine Kreditkarte — und Sie können auf jedem Ubuntu-VPS in etwa zehn Minuten installieren:
curl -fsSL https://shadowpanel.de/install.sh | bash