Docker auf einem VPS: der Einstieg

Mit Docker betreiben Sie auf einem Server einen Bot, eine Website, eine Datenbank und ein Monitoring, ohne dass sie sich in die Quere kommen, und der Umzug auf einen anderen VPS beschränkt sich auf das Kopieren einiger Dateien und der Daten. Die Installation dauert fünf Minuten, die eigentlichen Probleme kommen später: nach außen offene Datenbank-Ports, Logs mit Dutzenden Gigabyte und Daten, die mit dem Container verschwunden sind. Hier erfahren Sie, wie Sie das von Anfang an vermeiden.

Aktualisiert 01.11.2026 · VPS nach eigenen Anforderungen finden →

Ein Container ist eine Anwendung samt allen Bibliotheken und Einstellungen, verpackt in ein Image. Auf dem Server startet er mit einem Befehl und läuft auf jedem Linux gleich. Für einen VPS heißt das: Sie müssen keine passenden Versionen von Python, Node.js oder PostgreSQL für das System suchen, mehrere Projekte vertragen sich auf einem Server, und die Datei compose.yaml beschreibt den gesamten Satz an Diensten so, dass Sie ihn auf einem neuen Server in Minuten hochfahren.

Welchen VPS Docker braucht

Virtualisierung: KVM. Docker nutzt Funktionen des Linux-Kernels: Namespaces, cgroups, eigene Netzwerkregeln. Unter KVM hat der Server einen eigenen Kernel, und Docker läuft ohne Einschränkungen. Unter OpenVZ und LXC teilt sich der Server den Kernel mit anderen Kunden, und Docker startet dort entweder gar nicht oder läuft mit Einschränkungen, die vom Hoster abhängen. Mehr dazu im Artikel KVM oder OpenVZ: was Sie wählen sollten.

Arbeitsspeicher und Kerne. Docker selbst braucht wenig, den Speicher verbrauchen die Container. Richtwerte:

  • 1 GB – ein bis zwei leichte Container: Bot, kleine API, Monitoring;
  • 2 Kerne und 2 GB – Website mit Datenbank und Reverse Proxy, einige kleine Dienste;
  • 2–4 Kerne und 4 GB – mehrere Projekte, PostgreSQL, Redis, Image-Builds direkt auf dem Server;
  • ab 8 GB – GitLab, n8n mit vielen Workflows, Elasticsearch und andere schwere Dienste.

Festplatte. Images brauchen Platz: Ein Basis-Image mit Python oder Node.js wiegt Hunderte Megabyte, und alte Versionen sammeln sich bei jedem Update an. Nehmen Sie ab 30 GB auf NVMe, für Image-Builds auf dem Server mehr.

Laut accsly-Katalog vom 1. November 2026 kostet ein KVM-Tarif mit 2 Kernen und 2 GB Arbeitsspeicher im Marktmedian etwa 13,50 € im Monat, ein Viertel dieser Tarife liegt unter etwa 8 €. Mit 2 Kernen und 4 GB sind es etwa 18 €, ein Viertel unter etwa 11 € (aus Rubel umgerechnet und gerundet). Auswahlen: VPS für Docker, VPS mit KVM, VPS mit 4 GB. Zum Ausprobieren ist die stundenweise Abrechnung praktisch: Ein Server für einen Abend kostet weniger als einen Euro.

Vor der Installation

Nehmen Sie ein frisches Ubuntu 22.04 oder 24.04 LTS oder Debian 12 und richten Sie zuerst den Grundschutz ein: Updates, Anmeldung per Schlüssel, eigener Benutzer, Firewall. All das finden Sie im Artikel Die ersten 10 Schritte nach dem VPS-Kauf: Sicherheit. Ein Control Panel für Websites brauchen Sie auf einem Server mit Containern meist nicht, warum, steht im Artikel Server-Control-Panels.

Installation aus dem offiziellen Repository

Das Paket docker.io aus dem Ubuntu-Repository hinkt der aktuellen Version oft hinterher und enthält nicht immer Compose. Zuverlässiger ist die Installation aus dem Docker-Repository. Die Befehle für Ubuntu laut offizieller Dokumentation:

sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

Für Debian sind die Befehle dieselben, nur wird in den Adressen linux/ubuntu durch linux/debian ersetzt, und statt UBUNTU_CODENAME wird VERSION_CODENAME verwendet. Prüfen Sie die Installation:

sudo docker run hello-world
docker compose version

Es gibt auch einen Installer mit einem Befehl über get.docker.com, doch die Docker-Dokumentation selbst rät davon für Produktivserver ab: Er installiert viele Pakete ohne Rückfrage und nimmt immer die neueste Version.

Die Gruppe docker. Damit Sie nicht vor jeden Befehl sudo schreiben müssen, fügen Sie den Benutzer der Gruppe docker hinzu: sudo usermod -aG docker $USER und neu anmelden. Denken Sie daran, dass das root-Rechten entspricht: Ein Mitglied der Gruppe kann einen Container mit Zugriff auf das gesamte Dateisystem des Servers starten. Nehmen Sie dort nur Ihr eigenes Arbeitskonto auf.

Das erste Projekt mit Docker Compose

Einzelne docker run-Befehle mit einem Dutzend Parametern vergisst man schnell. Bequemer ist es, das Projekt in einer Datei compose.yaml in einem eigenen Ordner zu beschreiben, etwa /opt/app. Ein Beispiel: eine Webanwendung mit PostgreSQL-Datenbank:

services:
  app:
    image: ghcr.io/example/app:1.4.2
    restart: unless-stopped
    environment:
      DATABASE_URL: postgres://app:${DB_PASSWORD}@db:5432/app
    ports:
      - "127.0.0.1:8080:8080"
    depends_on:
      - db
  db:
    image: postgres:16
    restart: unless-stopped
    environment:
      POSTGRES_USER: app
      POSTGRES_PASSWORD: ${DB_PASSWORD}
    volumes:
      - db-data:/var/lib/postgresql/data

volumes:
  db-data:

Legen Sie das Passwort daneben in eine Datei .env mit der Zeile DB_PASSWORD=... und schützen Sie sie vor dem Lesen durch andere Benutzer: chmod 600 .env. Start mit docker compose up -d, Log mit docker compose logs -f app, Stopp mit docker compose down.

Drei Dinge sind in diesem Beispiel wichtig:

  • restart: unless-stopped – die Container starten nach einem Neustart des Servers wieder;
  • die Datenbank hat keinen Abschnitt ports: Die Anwendung erreicht sie unter dem Namen db im internen Netz des Projekts, von außen ist sie nicht erreichbar;
  • der Port der Anwendung ist nur auf 127.0.0.1 veröffentlicht, nach außen stellt ihn nginx oder Caddy mit TLS-Zertifikat bereit.

Ports und Firewall

Die größte Falle für Einsteiger. Veröffentlicht ein Container einen Port als "5432:5432", legt Docker selbst iptables-Regeln an, und dieser Port wird unabhängig von den Regeln von ufw oder firewalld nach außen geöffnet. Die Docker-Dokumentation warnt ausdrücklich: Veröffentlichte Container-Ports gelten unabhängig von den Firewall-Regeln. Genau so landen PostgreSQL-, MongoDB- und Redis-Datenbanken ohne Passwort am häufigsten im Internet.

Die Regel ist einfach: Veröffentlichen Sie nach außen nur, was für alle erreichbar sein soll – meist die Ports 80 und 443 des Reverse Proxys. Alles andere entweder ohne Abschnitt ports oder gebunden an 127.0.0.1. Was der Server tatsächlich abhört, zeigt der Befehl ss -tlnp, von außen prüfen Sie es von einem anderen Rechner mit nc -zv IP-des-Servers 5432.

Logs und Speicherplatz

Standardmäßig schreibt Docker die Ausgabe der Container ohne Größenbegrenzung in JSON-Dateien. Eine gesprächige Anwendung füllt die Festplatte in ein paar Monaten, und der Server steht. Begrenzen Sie die Logs für alle Container in der Datei /etc/docker/daemon.json:

{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

Danach sudo systemctl restart docker. Die Einstellung gilt für Container, die danach erstellt werden, legen Sie die Projekte deshalb neu an: docker compose up -d --force-recreate.

Der zweite Platzfresser sind alte Images. Wie viel belegt ist, zeigt docker system df, ungenutzte Images löschen Sie mit docker image prune -a. Den Befehl docker system prune --volumes sollten Sie nicht ausführen, ohne genau zu wissen, was er tut: Er löscht auch die Volumes gestoppter Projekte samt Daten.

Wo die Daten liegen und wie Sie sie sichern

Alles, was eine Anwendung innerhalb des Containers geschrieben hat, verschwindet, wenn der Container neu erstellt wird. Erhalten bleibt nur, was in Volumes (volumes) oder in eingebundenen Ordnern des Servers liegt. Prüfen Sie vor dem Start eines Images in seiner Dokumentation, welche Ordner in ein Volume gehören: bei PostgreSQL /var/lib/postgresql/data, bei anderen Anwendungen eigene Pfade.

Datenbankdateien im laufenden Betrieb zu kopieren ist unzuverlässig. Erstellen Sie einen Dump über den Container selbst:

docker compose exec -T db pg_dump -U app app | gzip > /backup/app-$(date +%F).sql.gz

Tragen Sie diesen Befehl in cron ein und schicken Sie die Kopien zusammen mit compose.yaml und .env nach außerhalb des Servers. Wie Sie externe Speicherung und Prüfung der Kopien einrichten, steht im Artikel VPS-Backups: Strategien und Werkzeuge.

Container aktualisieren

Geben Sie in compose.yaml eine konkrete Image-Version an (postgres:16, app:1.4.2), nicht latest: Dann kommt ein Update, wenn Sie es geplant haben, und nicht bei einem zufälligen Neustart. Ablauf eines Updates:

  1. einen Dump der Datenbank erstellen;
  2. die Version in compose.yaml ändern;
  3. docker compose pull und docker compose up -d;
  4. Log und Funktion der Anwendung prüfen, danach das alte Image löschen.

Major-Versionen von Datenbanken, etwa PostgreSQL 16 → 17, lassen sich so nicht aktualisieren: Die neue Version braucht eine Datenübernahme per Dump und Import. Das System des Servers und Docker selbst aktualisieren Sie mit dem üblichen apt upgrade.

Wie es weitergeht

Laufen mehrere Projekte auf dem Server, lohnen sich ein Reverse Proxy, der selbst Zertifikate bezieht, und ein Verfügbarkeitsmonitoring. Für einen Bot in Python oder Node.js im Container reicht ein kleiner Server, Details im Artikel VPS für einen Telegram-Bot. Werden es viele Container und reicht ein Server nicht mehr, ist der nächste Schritt ein Verbund mehrerer Server unter einem Orchestrator, Tarife in der Auswahl VPS für Kubernetes. Für Automatisierung und CI in Containern gibt es die Auswahlen VPS für n8n und VPS für GitLab.

Häufige Fragen

Läuft Docker auf jedem VPS?

Sie brauchen KVM oder eine andere Vollvirtualisierung mit eigenem Kernel. Unter OpenVZ und LXC teilt sich der Server den Kernel mit anderen Kunden, und Docker läuft dort nicht oder nur eingeschränkt.

Wie viel Arbeitsspeicher braucht ein VPS für Docker?

Für ein bis zwei leichte Container reicht 1 GB. Für eine Website mit Datenbank und Reverse Proxy nehmen Sie 2 Kerne und 2 GB, für mehrere Projekte mit PostgreSQL und Redis 4 GB. Festplatte ab 30 GB auf NVMe.

Wie installiere ich Docker unter Ubuntu?

Binden Sie das offizielle Docker-Repository ein und installieren Sie die Pakete docker-ce, docker-ce-cli, containerd.io, docker-buildx-plugin und docker-compose-plugin. Prüfen Sie die Installation mit sudo docker run hello-world.

Warum schließt ufw den Port eines Containers nicht?

Docker legt für veröffentlichte Ports eigene iptables-Regeln an, und diese gelten unabhängig von ufw. Veröffentlichen Sie keine Datenbank-Ports, binden Sie Anwendungsports an 127.0.0.1 und stellen Sie sie über einen Reverse Proxy nach außen bereit.

Warum hat Docker die ganze Festplatte gefüllt?

Meist sind die Container-Logs schuld, die standardmäßig nicht in der Größe begrenzt sind, und alte Images. Setzen Sie max-size und max-file in /etc/docker/daemon.json und löschen Sie ungenutzte Images regelmäßig mit docker image prune -a.

Gehen die Daten verloren, wenn ich einen Container lösche?

Ja, wenn sie im Container gespeichert waren. Erhalten bleiben nur Daten in Volumes und eingebundenen Ordnern des Servers. Datenbanken sichern Sie zusätzlich per Dump außerhalb des Servers.

Passende Tarife

VPS für CI/CD-RunnerVPS-Hosting-Ranking 2026

Mehr im Ratgeber

  • So ziehen Sie eine Website vom Shared Hosting auf einen VPS umDer Umzug selbst dauert ein paar Stunden, Fehler passieren meist drumherum: ein vergessener Cron-Job, .htaccess-Regeln, die nginx nicht liest, ein AAAA-Eintrag mit der alten Adresse oder E-Mails, die mit dem IP-Wechsel verschwinden. Hier finden Sie die Reihenfolge mit Befehlen und Prüfungen für eine Website mit PHP und MySQL.
  • Server-Control-Panels: ISPmanager, FASTPANEL, aaPanelEin Control Panel macht aus einem VPS die vom Shared Hosting gewohnte Verwaltungsoberfläche: Websites, Datenbanken, Postfächer und Zertifikate legen Sie per Mausklick an, statt Konfigurationsdateien zu bearbeiten. Drei Panels werden auf russischen und günstigen ausländischen Servern am häufigsten installiert: ISPmanager, FASTPANEL und aaPanel. Sie unterscheiden sich im Preis, im Speicherbedarf und darin, wie stark sie den Server für sich beanspruchen.
  • Windows-VPS für 1CEin gemieteter Server für 1C erspart den Bürorechner unter dem Schreibtisch, den niemand aktualisiert und niemand sichert. Doch 1C auf einem VPS hat seine Eigenheiten: Die Softwarelizenz wird an die Parameter der virtuellen Maschine gebunden, Benutzer brauchen Lizenzen für 1C und für Windows, und die Taktfrequenz der Kerne zählt mehr als ihre Anzahl. Hier erfahren Sie, wie Sie einen Server für 1C in einem kleinen Unternehmen zusammenstellen.
  • Windows-VPS: Lizenzierung, RDP und sichere AnmeldungEin Windows-Server kostet nicht nur wegen des Arbeitsspeichers mehr als Linux: Im Preis steckt eine Lizenz, und wie sie geregelt ist, entscheidet darüber, ob Sie rechtlich sauber arbeiten und wie viele Personen sich verbinden können. Ein offener RDP-Port ist zudem der häufigste Weg, auf dem solche Server gehackt werden. Hier finden Sie beide Themen.
  • Wann sich der Umstieg von Shared Hosting auf einen VPS lohntEin VPS macht eine Website nicht von selbst schneller: Er gibt Ihnen Ressourcen und Freiheit, und damit auch die Aufgabe, einen Server zu betreiben. Hier lesen Sie, woran Sie erkennen, dass das Hosting zu klein geworden ist, wann sich das Problem ohne Umzug lösen lässt und wie Sie eine Website so umziehen, dass Besucher nichts davon merken.
  • VPS-Backups: Strategien und WerkzeugeAuf einem VPS sind Backups Ihre Sache, auch wenn im Tarif „Backups inklusive“ steht. Hier lesen Sie, was genau gesichert werden muss, warum ein Snapshot beim Hoster nicht reicht, wie Sie restic oder BorgBackup in einer halben Stunde einrichten und wie Sie sicherstellen, dass sich aus dem Backup tatsächlich wiederherstellen lässt.
  • Die ersten 10 Schritte nach dem VPS-Kauf: SicherheitWenige Minuten, nachdem ein neuer Server eine öffentliche IP bekommen hat, beginnen Bots, seine Passwörter zu erraten. Hier finden Sie zehn Schritte, die in etwa einer Stunde die häufigsten Lücken schließen: Befehle für Ubuntu und Debian, die Unterschiede bei AlmaLinux und Rocky Linux und die Prüfungen, ohne die Sie sich leicht aus dem eigenen Server aussperren.
  • Wie Sie das Land für Ihren Server wählenStellen Sie den Server dorthin, wo Ihre Besucher sind. Für ein Publikum in Deutschland, Österreich und der Schweiz sind Frankfurt und Nürnberg die naheliegenden Standorte. Verarbeitet die Website personenbezogene Daten von Nutzern aus der EU, ist ein Server in der EU oder im EWR datenschutzrechtlich am einfachsten. Der Preis entscheidet kaum: Beim selben Anbieter kostet ein Server in Frankfurt, Amsterdam oder Helsinki meist gleich viel, spürbar teurer sind nur Asien und Australien.
  • Stündliche Abrechnung: wann sie sich lohntStündliche Abrechnung lohnt sich, wenn Sie den Server weniger als drei Wochen im Monat brauchen: für einen Test, für Builds, für eine einmalige schwere Aufgabe. Bei den meisten Anbietern kostet eine Stunde genau den Monatspreis geteilt durch 730 Stunden, für einen vollen Monat zahlen Sie also kaum drauf. Der Aufpreis steckt woanders: Tarife mit stündlicher Abrechnung sind im Schnitt teurer, und für einen Server, der das ganze Jahr läuft, ist ein Monatstarif mit Jahresvorauszahlung meist günstiger.
  • Wie viel Arbeitsspeicher und wie viele Kerne braucht eine Website?Den meisten Websites reichen 2 GB Arbeitsspeicher und ein bis zwei Kerne, ein Shop mit tausenden Produkten braucht 4 GB und zwei Kerne. Der Arbeitsspeicher ist wichtiger als die Kerne: Fehlt er, wird die Website langsam oder stürzt ab, während ein zusätzlicher Kern ohne Speicher kaum etwas bringt. Unten zeige ich, wie Sie den Speicherbedarf Ihrer Website berechnen und wie Sie herausfinden, wie viel sie tatsächlich verbraucht.
  • KVM oder OpenVZ: was Sie wählen solltenIm Jahr 2026 ist KVM fast immer die richtige Wahl: Es kostet nur wenige Dutzend Cent im Monat mehr als OpenVZ, dafür läuft darauf alles, von Docker bis Windows. OpenVZ lohnt sich nur in einem engen Fall, und unten sehen Sie, in welchem. Am Ende finden Sie Befehle, mit denen Sie Ihren Server in einer Minute prüfen.
  • NVMe oder SSD: Gibt es einen Unterschied für die Website?Für eine kleine Website ist der Unterschied zwischen NVMe und SSD kaum spürbar: Seiten werden aus dem Arbeitsspeicher ausgeliefert, nicht von der Festplatte. Er zeigt sich bei Shops und Websites mit großer Datenbank. Beim selben Anbieter kostet NVMe nur etwa 0,45 bis 0,80 € im Monat mehr, manchmal sogar weniger. Entscheidend sind daher meist nicht der Festplattentyp, sondern die Größe und wie der Anbieter die Festplatte drosselt.
  • Was ist ein VPS? Einfach erklärtEin VPS ist ein Teil eines leistungsstarken physischen Servers, den Sie mieten und der sich wie ein eigener Computer verhält: mit eigenem Betriebssystem, eigener IP-Adresse und vollem Zugriff. Hier lesen Sie, wie er sich von Webhosting unterscheidet, für wen er sich lohnt, was er kostet und was Sie direkt nach dem Kauf prüfen sollten.
  • VPS für einen Telegram-Bot: was der Bot braucht und wie Sie den Tarif wählenEin Bot mit Menü und ein paar Befehlen läuft problemlos auf dem günstigsten Server, ein Bot mit Massennachrichten, Dateien und Datenbank stößt dagegen an ganz andere Grenzen. Hier lesen Sie, was ein Bot tatsächlich verbraucht, welche Telegram-Limits die Serverwahl bestimmen und wie Sie nicht zu viel bezahlen.
  • Ping und Geschwindigkeit eines VPS vor der Bezahlung prüfenDie Angaben im Tarif verraten weder die Latenz zu Ihren Nutzern noch die tatsächliche Geschwindigkeit der Festplatte. Vieles lässt sich vor der Bezahlung messen, den Rest prüfen Sie in der ersten Stunde nach dem Start. Hier sind die Werkzeuge und die Deutung der Ergebnisse.
  • Firmennetz auf einem VPS: Fernzugriff auf das BüroEin gemieteter Server kann zum Knotenpunkt des privaten Firmennetzes werden: Mitarbeiter im Homeoffice und Filialen verbinden sich darüber mit ERP, Fileserver, CRM und Git. Hier finden Sie die gängigen Topologien, Protokolle, Anforderungen an den Server und die Grundlagen der Absicherung.
  • VPS auswählen: die 7 Kriterien, auf die es ankommtZwei Tarife mit identischen Angaben wie „2 Kerne, 4 GB, 50 GB“ können sich in der Leistung um ein Vielfaches und im Preis nach einem Jahr um das Doppelte unterscheiden. Hier lesen Sie, was hinter jeder Zeile eines VPS-Tarifs steckt und was Sie vor der Bezahlung prüfen sollten.
  • VPS oder VDS: Gibt es einen Unterschied, und worauf kommt es an?In den meisten Märkten bedeuten VPS und VDS dasselbe: einen virtuellen Server. Der Unterschied, der Ihre Arbeit wirklich beeinflusst, steckt nicht im Namen, sondern in der Virtualisierungsart und darin, ob die Ressourcen garantiert sind.