Erste Schritte mit Docker auf einem VPS
Geschrieben vom ApexVPS-Team • Zuletzt aktualisiert: Juli 2026 • 8 Min. Lesezeit
Das Ausführen von Docker auf einem VPS ist der schnellste Weg, von einem leeren Ubuntu-System zu einer laufenden Web-App, Datenbank oder einem selbst gehosteten Dienst in wenigen Minuten zu gelangen. Anstatt mit Systempaketen und widersprüchlichen Abhängigkeiten zu kämpfen, ziehen Sie ein vorgefertigtes Image und starten einen Container. Dieser Anfängerleitfaden führt Sie durch die Installation von Docker und Docker Compose auf Ubuntu oder Debian, die wichtigsten Konzepte, das Starten Ihres ersten Containers, das Speichern von Daten mit Volumes und einige Sicherheitsgrundlagen, damit Sie keinen Ärger bekommen.
Warum Docker auf einem VPS ausführen?
Ein virtueller privater Server gibt Ihnen vollen Root-Zugriff und dedizierte Ressourcen – genau das, was Container wollen. Mit installiertem Docker können Sie viele isolierte Dienste nebeneinander betreiben, ohne dass sie sich gegenseitig stören. Jeder Container bringt seine eigenen Bibliotheken mit, sodass eine Node-App, eine Postgres-Datenbank und ein Reverse-Proxy auf einer Maschine sauber koexistieren können. Wenn Ihr Ziel Self-Hosting-Apps auf einem VPS ist – denken Sie an eine persönliche Cloud, ein Wiki oder einen Medienserver – hält Docker jeden Dienst ordentlich und reproduzierbar.
Container sind auch portabel. Dieselbe Compose-Datei, die auf Ihrem Laptop läuft, läuft auch auf dem Server, was das klassische „-Auf-meinem-Rechner-funktioniert-es“-Problem beseitigt. Nach einem Fehler einen Dienst neu aufzubauen dauert Sekunden, statt einen Nachmittag mit der Neuinstallation von Paketen zu verbringen.
Kernkonzepte in einfachem Deutsch
Bevor Sie die Kommandozeile anfassen, hilft es, vier Bausteine zu kennen:
- Image – eine schreibgeschützte Vorlage, die eine Anwendung und alles, was sie zum Laufen braucht, enthält. Sie laden Images aus einer Registry wie Docker Hub herunter. Stellen Sie es sich als Schnappschuss oder Klasse vor.
- Container – eine laufende Instanz eines Images. Sie können Container frei starten, stoppen und löschen. Viele Container können aus demselben Image laufen, wie Objekte, die aus einer Klasse erstellt wurden.
- Volume – persistenter Speicher, der außerhalb der beschreibbaren Schicht eines Containers liegt. Mit Volumes halten Sie Datenbanken und hochgeladene Dateien sicher, wenn ein Container ersetzt wird.
- Netzwerk – ein virtuelles Netzwerk, das es Containern ermöglicht, sich gegenseitig über Namen zu erreichen. Docker erstellt automatisch eines für jedes Compose-Projekt, sodass Ihre App ihre Datenbank unter einem freundlichen Hostnamen erreichen kann.
Schritt 1: Installieren Sie Docker auf Ubuntu oder Debian
Der einfachste, offiziell unterstützte Weg, Docker Engine zu installieren, ist das Komfort-Skript. Verbinden Sie sich per SSH mit Ihrem Server und führen Sie aus:
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
Dies installiert Docker Engine zusammen mit dem Compose-Plugin. Wenn es fertig ist, bestätigen Sie die Versionen:
docker --version
docker compose version
Standardmäßig verlangt Docker sudo. Um es als normaler Benutzer auszuführen, fügen Sie sich zur Gruppe docker hinzu, melden Sie sich dann ab und wieder an, damit die Änderung wirksam wird:
sudo usermod -aG docker $USER
Docker startet auf den meisten Systemen auch beim Booten. Falls Sie es jemals manuell aktivieren müssen:
sudo systemctl enable --now docker
Bevorzugen Sie die Paket-Repository-Methode oder möchten Sie die vollständigen Details für Ihre genaue Distribution? Die offizielle Docker-Installationsdokumentation deckt alle Optionen ab. Das obige Komfort-Skript ist ideal für einen frischen VPS.
Schritt 2: Führen Sie Ihren ersten Container aus
Testen Sie die Installation mit dem klassischen Hello-World-Image:
docker run hello-world
Docker zieht das Image, führt es einmal aus und gibt eine Bestätigungsmeldung aus. Lassen Sie uns nun etwas laufen lassen, das Sie tatsächlich sehen können. Dieser Befehl startet einen Nginx-Webserver im Hintergrund und ordnet Port 8080 auf dem Host Port 80 im Container zu:
docker run -d -p 8080:80 --name web nginx
Öffnen Sie http://your-server-ip:8080 in einem Browser und Sie sollten die Nginx-Begrüßungsseite sehen. Ein paar Flags, die es wert sind, gekannt zu werden:
-dführt den Container entkoppelt (detached) im Hintergrund aus.-p 8080:80veröffentlicht einen Port alshost:container.--name webgibt dem Container einen einprägsamen Namen.
Prüfen Sie, was läuft, stoppen und entfernen Sie dann den Container, wenn Sie fertig sind:
docker ps
docker stop web
docker rm web
Eine Handvoll Befehle deckt die meiste tägliche Arbeit ab. docker images listet die heruntergeladenen Images auf, docker logs web zeigt die Ausgabe eines Containers zur Fehlersuche, und docker exec -it web bash öffnet eine Shell in einem laufenden Container, damit Sie herumstöbern können. Diese fünf oder sechs Befehle zu lernen reicht, um einen kleinen Server sicher zu verwalten; den Rest können Sie bei Bedarf nachschlagen.
Schritt 3: Verwenden Sie Docker Compose für Multi-Container-Apps
Das ständige Tippen langer docker run-Befehle wird schnell lästig. Mit Docker Compose beschreiben Sie Ihren gesamten Stack in einer einzigen Datei und starten ihn mit einem Befehl. Erstellen Sie eine Datei namens compose.yaml:
services:
web:
image: nginx:latest
ports:
- "8080:80"
volumes:
- web-data:/usr/share/nginx/html
restart: unless-stopped
volumes:
web-data:
Starten Sie aus demselben Verzeichnis alles im Hintergrund:
docker compose up -d
Compose erstellt das Netzwerk, das benannte Volume und den Container für Sie. Nützliche Begleiter:
docker compose ps
docker compose logs -f
docker compose down
Die restart: unless-stopped-Richtlinie bewirkt, dass der Dienst nach einem Neustart oder Absturz automatisch zurückkommt – praktisch für einen Server, den Sie nicht rund um die Uhr überwachen.
Schritt 4: Daten mit Volumes dauerhaft speichern
Dies ist der Teil, den Anfänger am häufigsten falsch machen. Alles, was in das Dateisystem eines Containers geschrieben wird, verschwindet, wenn dieser Container entfernt oder neu erstellt wird. Um Daten zu behalten, legen Sie sie in einem Volume ab. Es gibt zwei gängige Ansätze:
- Benannte Volumes – von Docker verwaltet, ideal für Datenbanken. Das obige Compose-Beispiel verwendet ein Volume namens
web-data. - Bind-Mounts – ordnen Sie einen Ordner auf dem Host direkt dem Container zu, z. B.
./config:/etc/app. Ideal für Konfigurationsdateien, die Sie von Hand bearbeiten möchten.
Volumes von der Befehlszeile aus anzeigen und verwalten:
docker volume ls
docker volume inspect web-data
Solange Ihre wichtigen Pfade auf ein Volume zeigen, können Sie Container nach Belieben löschen und neu erstellen, ohne ein Byte zu verlieren. Sichern Sie das Volume-Verzeichnis im Rahmen Ihrer Server-Backups.
Schritt 5: Images und Container aktualisieren
Container-Images erhalten Sicherheits- und Funktionsupdates wie jede andere Software. Das Aktualisieren eines Compose-Stacks ist eine zweistufige Routine: neuere Images pullen, dann Container neu erstellen.
docker compose pull
docker compose up -d
Da Ihre Daten in Volumes liegen, ist das Neuerstellen sicher. Mit der Zeit sammeln sich ungenutzte Images an und belegen Speicherplatz. Entfernen Sie sie gelegentlich:
docker image prune
Pinnen Sie auf bestimmte Versionstags (z. B. postgres:16 statt latest), wenn Sie vorhersehbare, wiederholbare Updates wünschen und keine Überraschungen.
Grundlegende Docker-Sicherheit für Einsteiger
Container sind praktisch, aber keine magische Sicherheitsgrenze. Ein paar Gewohnheiten bewahren Sie vor Problemen:
- Führen Sie nur Images aus, denen Sie vertrauen. Bevorzugen Sie offizielle Images oder bekannte Herausgeber. Führen Sie kein beliebiges Image als root aus, nur weil ein Tutorial es sagt – ein nicht vertrauenswürdiges Image führt Code auf Ihrem Server aus.
- Verzichten Sie auf root innerhalb von Containern. Viele offizielle Images unterstützen einen Nicht-root-Benutzer, oder Sie legen einen mit der
USER-Anweisung in einem Dockerfile fest. Wenn Sie als eingeschränkter Benutzer ausführen, reduzieren Sie den Schaden, falls eine App kompromittiert wird. - Veröffentlichen Sie nur die Ports, die Sie benötigen. Jede
-p-Flagge öffnet eine Tür zum Internet. Halten Sie Datenbanken im internen Docker-Netzwerk und legen Sie nur Ihr Web-Frontend frei. - Halten Sie den Host gepatcht. Docker-Sicherheit beginnt mit einem sicheren Server. Führen Sie
sudo apt update && sudo apt upgraderegelmäßig aus und sichern Sie SSH ab.
Bevor Sie etwas öffentlich zugänglich machen, arbeiten Sie unsere Begleit-Checkliste durch, wie Sie Ihren VPS in den ersten 10 Minuten absichern – sie behandelt SSH-Schlüssel, eine Firewall und automatische Updates, die perfekt zu einem Docker-Host passen.
Einen VPS wählen, der für Docker bereit ist
Docker läuft auf bescheidener Hardware, aber dedizierte Ressourcen machen einen echten Unterschied, sobald Sie mehrere Container stapeln. Geteiltes, überverkauftes Hosting bedeutet, dass ein lauter Nachbar Ihre Datenbank im ungünstigsten Moment drosseln kann. ApexVPS bietet Ihnen wirklich dedizierte vCPU, NVMe-SSD-Speicher und vollen Root-Zugriff, sodass Ihre Container die Leistung erhalten, für die Sie bezahlt haben. Jeder Plan unterstützt Ubuntu, Debian und andere gängige Distributionen, und Sie können bei der Anmeldung Ihren SSH-Schlüssel hinterlegen.
Der Checkout erfolgt ausschließlich per Krypto über OxaPay und akzeptiert Bitcoin, Ethereum, USDT und über 30 weitere Kryptowährungen – keine Kreditkarte, kein Bankkonto und kein KYC. Sie geben nur eine E-Mail-Adresse an, um die Zugangsdaten zu erhalten, das war es. Vergleichen Sie die Spezifikationen und Regionen auf der ApexVPS-Preisseite, um einen Plan zu finden, der für Ihre Container-Workload ausgelegt ist.
Häufig gestellte Fragen
Brauche ich viel RAM, um Docker auf einem VPS auszuführen?
Nein. Docker selbst ist leichtgewichtig und fügt nur wenig Overhead hinzu. Ein oder zwei Container laufen problemlos mit 2 GB RAM, während 4 GB oder mehr Spielraum für Datenbanken und mehrere Dienste gleichzeitig bieten.
Heißt es docker-compose oder docker compose?
Bei einer modernen Installation wird Compose als Plugin ausgeliefert, daher lautet der Befehl docker compose mit einem Leerzeichen. Die ältere eigenständige Binärdatei docker-compose funktioniert weiterhin, wird aber auslaufen – verwenden Sie bei einer neuen Einrichtung die Plugin-Version.
Wo werden meine Daten gespeichert, wenn ein Container gelöscht wird?
Alles, was innerhalb des Containers geschrieben wird, geht beim Entfernen verloren. Speichern Sie wichtige Daten in einem benannten Volume oder einem Bind Mount, damit sie das Neuerstellen des Containers überleben. So bleiben Datenbanken und Uploads sicher.
Kann ich einen Docker-bereiten VPS mit Kryptowährung bezahlen?
Ja. Der Checkout bei ApexVPS erfolgt ausschließlich per Krypto über OxaPay und akzeptiert Bitcoin, Ethereum, USDT und über 30 Coins. Die Anmeldung benötigt nur eine E-Mail, keine Kreditkarte und keine Identitätsprüfung.