Docker auf einem VPS zu installieren ist einer der ersten Schritte, die viele Systemadministratoren und Entwickler beim Einrichten eines neuen Servers gehen. Docker ermöglicht es, Anwendungen in isolierten Containern auszuführen, was für Konsistenz, Skalierbarkeit und eine einfache Verwaltung sorgt. In dieser vollständigen Anleitung lernen Sie Schritt für Schritt, wie Sie Docker auf einem VPS installieren, von der Vorbereitung Ihres Servers bis zum Start Ihres ersten Containers.

Was ist Docker und warum sollten Sie Docker auf einem VPS installieren?

Docker ist eine Open-Source-Plattform, mit der sich Anwendungen in Containern verpacken lassen. Ein Container enthält alles, was eine Anwendung zum Ausführen braucht: den Code, die Laufzeitumgebung, Bibliotheken und Systemwerkzeuge. Dadurch lassen sich Anwendungen ohne Kompatibilitätsprobleme zwischen verschiedenen Umgebungen verschieben. Wenn Sie Docker auf einem VPS installieren, erhalten Sie Zugang zu einem leistungsstarken Ökosystem für die Verwaltung von Webanwendungen.

Vorteile von Docker auf einem VPS

  • Isolation: Jede Anwendung läuft ohne Konflikte in einem eigenen Container
  • Konsistenz: Derselbe Container läuft identisch in Entwicklungs-, Test- und Produktionsumgebungen
  • Effiziente Nutzung von Ressourcen: Container sind schlanker als virtuelle Maschinen
  • Schnelles Deployment: Neue Anwendungen sind in Sekunden einsatzbereit
  • Einfache Skalierbarkeit: Container lassen sich ganz einfach duplizieren
  • Versionsverwaltung: Einfache Rückkehr zu früheren Versionen

Systemanforderungen für die Docker-Installation auf einem VPS

Bevor Sie Docker auf einem VPS installieren, muss Ihr Server bestimmte Mindestanforderungen erfüllen. Hier ist eine Übersicht dessen, was Sie benötigen:

KomponenteMinimumEmpfohlenErläuterung
RAM1 GB2+ GBMehr RAM = mehr Container gleichzeitig
CPU1 Kern2+ Kerne64-Bit-Prozessor erforderlich
Speicherplatz10 GB40+ GBSSD für gute Performance dringend empfohlen
OSUbuntu 22.04+Ubuntu 24.04 LTSDebian, CentOS, AlmaLinux ebenfalls unterstützt
Kernel3.10+5.x+Moderne Kernel bieten eine bessere Container-Unterstützung

Sie haben noch keinen VPS? Lesen Sie unseren Ratgeber zum Thema VPS-Anbieter wählen, um den richtigen Server für Ihre Docker-Umgebung auszuwählen.

Schritt 1: VPS vorbereiten

Der erste Schritt bei der Installation von Docker auf einem VPS ist die Vorbereitung Ihres Servers. Melden Sie sich per SSH an und führen Sie die folgenden vorbereitenden Aufgaben aus. Wenn Sie mit SSH noch nicht vertraut sind, lesen Sie unseren Ratgeber über Serververbindungen.

System aktualisieren

Beginnen Sie immer damit, Ihr System auf die neuesten Pakete zu aktualisieren. Unter Ubuntu/Debian erledigen Sie das mit apt update und apt upgrade. So stellen Sie sicher, dass alle Sicherheitspatches eingespielt sind und Sie die neuesten Versionen der Abhängigkeiten haben.

Benötigte Pakete installieren

Docker benötigt für die Installation einige Basispakete. Diese Pakete ermöglichen es, Repositories über HTTPS zu nutzen: apt-transport-https, ca-certificates, curl und gnupg. Sie sorgen für einen sicheren Download von Docker aus dem offiziellen Repository.

Alte Docker-Versionen entfernen

Falls bereits eine ältere Docker-Version auf Ihrem Server installiert ist, entfernen Sie diese zuerst. Ältere Pakete heißen möglicherweise docker, docker.io oder docker-engine. Das Entfernen dieser Versionen verhindert Konflikte mit der neuen Installation.

Schritt 2: Docker-Repository hinzufügen

Docker wird nicht aus den Standard-Repositories von Ubuntu/Debian installiert, sondern aus dem offiziellen Docker-Repository. Das garantiert, dass Sie immer die neueste und stabilste Version erhalten.

GPG-Schlüssel hinzufügen

Laden Sie den offiziellen GPG-Schlüssel von Docker herunter und fügen Sie ihn Ihrem System hinzu. Dieser Schlüssel bestätigt, dass die heruntergeladenen Pakete echt und nicht manipuliert sind. Speichern Sie den Schlüssel gemäß aktueller Best Practice in /etc/apt/keyrings/.

Repository konfigurieren

Fügen Sie das Docker-Repository Ihrer Quellenliste hinzu. Verwenden Sie dabei die Architektur Ihres Systems (meist amd64 für x86_64-Server) und den Codenamen Ihrer Ubuntu/Debian-Version. Führen Sie nach dem Hinzufügen des Repositorys erneut ein Update aus, damit Ihr System die neuen Pakete findet.

Schritt 3: Docker Engine installieren

Nachdem Sie das Repository konfiguriert haben, können Sie die eigentliche Docker Engine installieren. Die Installation von Docker auf einem VPS umfasst drei Pakete: docker-ce (die Docker Engine), docker-ce-cli (die Kommandozeilenschnittstelle) und containerd.io (die Container-Laufzeitumgebung).

Installation überprüfen

Prüfen Sie nach der Installation, ob Docker korrekt funktioniert, indem Sie die Version mit docker --version abfragen und mit docker run hello-world einen Test-Container starten. Wenn Sie die hello-world-Meldung sehen, ist Docker erfolgreich auf Ihrem VPS installiert.

Docker ohne sudo verwenden

Standardmäßig erfordert Docker Root-Rechte. Um Docker-Befehle ohne sudo ausführen zu können, fügen Sie Ihren Benutzer zur docker-Gruppe hinzu. Danach müssen Sie sich ab- und wieder anmelden, damit die Änderung wirksam wird. Achtung: Damit erhält Ihr Benutzer über Docker faktisch Root-Rechte, seien Sie auf Produktionsservern also vorsichtig damit.

Schritt 4: Docker Compose installieren

Docker Compose ist ein unverzichtbares Werkzeug, mit dem Sie Multi-Container-Anwendungen mit einer einzigen Konfigurationsdatei definieren und verwalten. Bei der Installation von Docker auf einem VPS gehört Docker Compose standardmäßig dazu.

Was ist Docker Compose?

Mit Docker Compose definieren Sie Ihren kompletten Anwendungs-Stack in einer docker-compose.yml-Datei. Diese Datei beschreibt, welche Container Sie benötigen, wie sie miteinander verbunden sind und welche Konfiguration sie verwenden. Mit einem einzigen Befehl starten Sie anschließend alle Container gleichzeitig.

Docker Compose installieren

Die neueste Version von Docker Compose (V2) wird als Docker-Plugin installiert. Bei aktuellen Docker-Installationen ist Compose V2 oft bereits enthalten. Prüfen Sie das mit docker compose version. Falls es fehlt, installieren Sie das Paket docker-compose-plugin über apt.

Schritt 5: Docker für den Produktivbetrieb konfigurieren

Nach der Installation von Docker auf einem VPS sind wichtige Konfigurationsschritte nötig, um Docker für den Produktivbetrieb tauglich zu machen. Die Standardeinstellungen sind für eine Produktionsumgebung nicht immer optimal.

Logging konfigurieren

Docker-Container erzeugen Logs, die standardmäßig unbegrenzt wachsen können. Konfigurieren Sie die Logrotation in der Konfigurationsdatei des Docker-Daemons (/etc/docker/daemon.json), damit Ihre Festplatte nicht vollläuft. Legen Sie eine maximale Größe von beispielsweise 10 MB pro Logdatei fest und bewahren Sie maximal 3 Dateien auf.

Storage-Driver wählen

Der Standard-Storage-Driver (overlay2) ist für die meisten Situationen die beste Wahl. Prüfen Sie mit docker info, welcher Driver aktiv ist. Auf älteren Systemen kann es vorkommen, dass ein weniger effizienter Driver verwendet wird, was sich auf die Leistung auswirkt.

Netzwerk konfigurieren

Docker legt standardmäßig ein Bridge-Netzwerk an. Für den Produktivbetrieb möchten Sie oft eigene Netzwerke anlegen, über die Ihre Container kontrolliert miteinander kommunizieren. Eigene Netzwerke bieten außerdem eine automatische DNS-Auflösung zwischen Containern, was die Verwaltung vereinfacht.

Schritt 6: Ihren ersten Container starten

Nachdem Docker installiert und konfiguriert ist, ist es Zeit, Ihren ersten echten Container zu starten. Starten wir als Beispiel einen Nginx-Webserver.

Nginx-Container starten

Mit dem Befehl docker run starten Sie einen Nginx-Container. Durch das Flag -d läuft der Container im Hintergrund (detached mode). Mit dem Flag -p verbinden Sie Port 80 des Containers mit Port 80 Ihres VPS, sodass der Webserver über die IP-Adresse Ihres Servers erreichbar ist. Das Flag --name gibt dem Container einen gut erkennbaren Namen für eine einfache Verwaltung.

Container verwalten

Wichtige Befehle für die Verwaltung Ihrer Docker-Container sind:

  • docker ps: alle laufenden Container anzeigen
  • docker ps -a: alle Container anzeigen, auch gestoppte
  • docker stop [name]: einen Container stoppen
  • docker start [name]: einen gestoppten Container starten
  • docker restart [name]: einen Container neu starten
  • docker logs [name]: die Logs eines Containers ansehen
  • docker exec -it [name] bash: eine Shell in einem laufenden Container öffnen

Praktische Docker-Compose-Beispiele

Nachfolgend finden Sie häufig verwendete Docker-Compose-Konfigurationen für Websites und Webanwendungen.

WordPress mit MySQL

Eine der beliebtesten Anwendungen ist der Betrieb von WordPress in Docker. Mit Docker Compose definieren Sie einen WordPress-Container und einen MySQL-Container, die zusammenarbeiten. Der WordPress-Container verbindet sich über das Docker-Netzwerk automatisch mit dem Datenbank-Container.

Node.js-Anwendung

Für Node.js-Anwendungen erstellen Sie ein Dockerfile, das Ihre Anwendung und ihre Abhängigkeiten enthält, und nutzen Docker Compose, um die Anwendung zusammen mit eventuellen Datenbanken und Cache-Servern zu orchestrieren.

Reverse Proxy mit Nginx

Wenn Sie mehrere Webanwendungen in Docker betreiben, ist ein Reverse Proxy unverzichtbar. Nginx Proxy Manager oder Traefik sind beliebte Optionen, die automatisch SSL-Zertifikate über Let's Encrypt anfordern und den Datenverkehr an den richtigen Container weiterleiten.

Docker-Sicherheit auf Ihrem VPS

Nach der Installation von Docker auf einem VPS ist die Sicherheit ein entscheidender Punkt. Docker-Container teilen sich den Kernel mit dem Hostsystem, sodass eine Sicherheitslücke in Docker potenziell das gesamte System kompromittieren kann.

Best Practices für die Sicherheit

  • Führen Sie Container nie als Root-Benutzer aus (verwenden Sie USER im Dockerfile)
  • Verwenden Sie nur offizielle und vertrauenswürdige Docker-Images
  • Scannen Sie Images regelmäßig mit Tools wie Trivy auf Schwachstellen
  • Begrenzen Sie die Container-Ressourcen mit Speicher- und CPU-Limits
  • Verwenden Sie nach Möglichkeit schreibgeschützte Dateisysteme
  • Halten Sie Docker selbst immer auf dem neuesten Stand
  • Konfigurieren Sie die Firewall so, dass nur notwendige Ports geöffnet sind

Kombinieren Sie die Docker-Sicherheit mit den allgemeinen Maßnahmen zur Serversicherheit aus unserem Ratgeber Website absichern.

Häufige Probleme bei der Installation von Docker auf einem VPS

Bei der Installation von Docker auf einem VPS können verschiedene Probleme auftreten. Hier sind die häufigsten Probleme und ihre Lösungen:

Permission denied

Dieser Fehler tritt auf, wenn Sie Docker-Befehle ohne die richtigen Rechte ausführen. Fügen Sie Ihren Benutzer zur docker-Gruppe hinzu oder verwenden Sie sudo. Vergessen Sie nicht, sich nach dem Hinzufügen zur Gruppe ab- und wieder anzumelden.

Portkonflikte

Wenn bereits ein anderer Dienst auf einem Port läuft, kann Docker diesen Port nicht nutzen. Prüfen Sie, welche Ports belegt sind, und wählen Sie einen anderen Port für Ihren Container, oder stoppen Sie den kollidierenden Dienst.

Zu wenig Speicherplatz

Docker-Images und Container können viel Platz belegen. Verwenden Sie regelmäßig docker system prune, um ungenutzte Images, Container und Volumes zu bereinigen. Überwachen Sie Ihre Festplattennutzung aktiv, um Problemen vorzubeugen.

Zusammenfassung und nächste Schritte

Sie haben Docker nun erfolgreich auf Ihrem VPS installiert und Ihre ersten Container gestartet. Docker eröffnet eine Welt voller Möglichkeiten für die Verwaltung von Webanwendungen auf Ihrem VPS. Als nächste Schritte bieten sich an: automatische Container-Updates einrichten, Monitoring mit Tools wie Portainer oder ctop konfigurieren, CI/CD-Pipelines für automatische Deployments implementieren und die Container-Orchestrierung mit Docker Swarm erkunden. Mit Docker auf Ihrem VPS sind Sie bereit, moderne Webanwendungen effizient, skalierbar und gut verwaltbar zu betreiben. Lesen Sie auch unseren Ratgeber zu VPS-Hosting in den Niederlanden mit den besten Servern für Docker.

Docker auf einem VPS installieren: Netzwerkkonfiguration und Sicherheit

Nach der Grundinstallation von Docker auf Ihrem VPS ist eine gute Netzwerkkonfiguration unverzichtbar. Docker legt standardmäßig ein Bridge-Netzwerk an, für Produktionsumgebungen brauchen Sie jedoch mehr Kontrolle darüber, wie Container miteinander und mit der Außenwelt kommunizieren.

Docker-Netzwerktypen erklärt

NetzwerktypVerwendungIsolationLeistung
Bridge (Standard)Container auf demselben HostGutGut
HostMaximale Leistung nötigKeineAm besten
OverlayMulti-Host (Docker Swarm)GutDurchschnittlich
MacvlanContainer als physische GeräteVollständigGut
NoneKein Netzwerk nötigVollständigEntfällt

Legen Sie für den Produktivbetrieb immer ein benutzerdefiniertes Bridge-Netzwerk an, statt das Standard-Bridge-Netzwerk zu verwenden. Das bietet eine automatische DNS-Auflösung zwischen Containern (Sie können Containernamen als Hostnamen verwenden) und eine bessere Isolation. Verwenden Sie den Befehl docker network create mijn-netwerk, um ein neues Netzwerk anzulegen.

Docker Compose für den Produktivbetrieb auf Ihrem VPS

Docker Compose ist unverzichtbar, wenn Sie mehrere Dienste auf Ihrem VPS betreiben. Mit einer einzigen YAML-Datei definieren Sie Ihren vollständigen Anwendungs-Stack. Für die Installation von Docker auf einem VPS im Produktivbetrieb ist Docker Compose die empfohlene Vorgehensweise.

Ein typischer Webanwendungs-Stack in Docker Compose enthält:

  • Reverse Proxy: Nginx oder Traefik für SSL-Terminierung und Load Balancing
  • Anwendung: Ihre Webanwendung in einem oder mehreren Containern
  • Datenbank: MySQL, PostgreSQL oder MongoDB in einem eigenen Container
  • Cache: Redis oder Memcached für Session-Speicherung und Caching
  • Monitoring: Prometheus und Grafana für das Server-Monitoring

Verwenden Sie für Ihre Images immer konkrete Versionsnummern statt des latest-Tags. Das verhindert unerwartete Updates, die Ihre Anwendung beschädigen können. Speichern Sie sensible Konfigurationen in Docker Secrets oder Environment-Dateien, die nicht in Ihrem Git-Repository liegen.

Docker-Sicherheit auf Ihrem VPS: Best Practices

Docker-Container sind standardmäßig nicht vollständig vom Hostsystem isoliert. Ohne zusätzliche Maßnahmen können Schwachstellen in Containern dazu führen, dass Ihr gesamter VPS kompromittiert wird. Befolgen Sie diese Best Practices für eine sichere Docker-Umgebung:

  • Container nicht als Root ausführen: Verwenden Sie die USER-Direktive in Ihrem Dockerfile, um einen Nicht-Root-Benutzer festzulegen.
  • Container-Ressourcen begrenzen: Legen Sie mit --memory und --cpus Limits für CPU und Arbeitsspeicher fest, um Denial-of-Service zu verhindern.
  • Schreibgeschützte Dateisysteme verwenden: Binden Sie das Container-Dateisystem nach Möglichkeit mit dem Flag --read-only schreibgeschützt ein.
  • Images auf Schwachstellen scannen: Nutzen Sie Tools wie Trivy oder Docker Scout, um bekannte Schwachstellen in Ihren Images zu erkennen.
  • Capabilities einschränken: Entfernen Sie unnötige Linux-Capabilities mit --cap-drop ALL und fügen Sie nur die notwendigen Capabilities hinzu.

Vergessen Sie nicht, auch den zugrunde liegenden VPS abzusichern. Folgen Sie den Schritten in unserer VPS-Sicherheitscheckliste und sorgen Sie für eine gut konfigurierte Firewall. Verwenden Sie für den Serverzugang SSH-Schlüssel statt Passwörtern und halten Sie das Betriebssystem mit den neuesten Sicherheitspatches auf dem aktuellen Stand.

Docker auf einem VPS installieren: Logging und Troubleshooting

Effektives Log-Management ist entscheidend, wenn Sie Docker auf einem VPS installieren und im Produktivbetrieb nutzen. Docker-Container erzeugen Logs, die für das Debuggen von Problemen, die Überwachung des Anwendungszustands und das Aufspüren von Sicherheitsvorfällen unverzichtbar sind.

Standardmäßig schreibt Docker Logs in JSON-Dateien auf dem Host. Bei lange laufenden Containern können diese Logdateien enorm anwachsen und Ihren Speicherplatz füllen. Konfigurieren Sie die Logrotation in der Konfiguration Ihres Docker-Daemons, indem Sie eine maximale Dateigröße und die Anzahl der aufzubewahrenden Dateien festlegen. Eine maximale Größe von 10 Megabyte mit drei rotierenden Dateien ist für die meisten Anwendungen eine gute Startkonfiguration.

Für Produktionsumgebungen mit mehreren Containern ist eine zentrale Logging-Lösung unverzichtbar. Der ELK-Stack (Elasticsearch, Logstash, Kibana) oder die schlankere Alternative Loki mit Grafana sammelt die Logs aller Container an einem zentralen Ort. So lassen sich Muster über mehrere Dienste hinweg erkennen, was beim Debuggen von Microservice-Architekturen entscheidend ist.

Docker auf dem VPS: Volumes und persistenter Speicher

Daten in Docker-Containern sind standardmäßig flüchtig: wenn ein Container entfernt wird, verschwinden alle Daten mit ihm. Für Produktions-Workloads auf Ihrem VPS ist persistenter Speicher über Docker-Volumes unverzichtbar. Volumes werden von Docker verwaltet und existieren unabhängig von Containern. Sie überstehen das Stoppen, Neustarten und sogar Entfernen von Containern. Verwenden Sie Named Volumes für Datenbanken und andere zustandsbehaftete Dienste. Erstellen Sie regelmäßig Backups Ihrer Volumes, am besten über ein automatisiertes Skript, das die Daten an einen externen Speicherort kopiert. Bind Mounts sind eine Alternative, bei der Sie ein Verzeichnis auf dem Hostsystem direkt mit einem Container verbinden. Das ist praktisch für die Entwicklung und für Konfigurationsdateien, für Produktionsdaten sind Volumes aber wegen der besseren Isolation und Portabilität zwischen verschiedenen Hosts vorzuziehen.

Docker auf Ihrem VPS: automatische Updates und Wartung

Die Pflege einer Docker-Umgebung auf Ihrem VPS erfordert Aufmerksamkeit sowohl für Docker selbst als auch für die verwendeten Images. Veraltete Images enthalten oft bekannte Sicherheitslücken, die von Angreifern aktiv ausgenutzt werden. Eine strukturierte Update-Strategie ist nach der Installation von Docker auf Ihrem VPS unverzichtbar.

Automatisieren Sie das Prüfen und Aktualisieren von Docker-Images mit Tools wie Watchtower. Watchtower überwacht Ihre laufenden Container und aktualisiert sie automatisch, sobald eine neue Version des verwendeten Images verfügbar ist. Konfigurieren Sie Watchtower so, dass Updates nur in Wartungsfenstern laufen, zum Beispiel nachts, wenn der Traffic auf Ihrer Website minimal ist. Für Produktionsumgebungen ist ein kontrollierterer Ansatz sicherer: nutzen Sie eine CI/CD-Pipeline, die neue Images zuerst in einer Staging-Umgebung testet, bevor sie in die Produktion ausgerollt werden.

Bereinigen Sie regelmäßig ungenutzte Docker-Ressourcen. Alte Images, gestoppte Container und ungenutzte Volumes belegen Speicherplatz, der sich nach und nach summieren kann. Der Befehl docker system prune entfernt alle ungenutzten Ressourcen auf einmal, verwenden Sie ihn im Produktivbetrieb aber mit Vorsicht. Planen Sie monatlich eine Wartungssitzung ein, um Ihre Docker-Umgebung zu bereinigen, Images zu aktualisieren und die Konfiguration zu überprüfen.

Docker auf Ihrem VPS: Ressourcen und Lernmaterialien

Nach der Installation von Docker auf Ihrem VPS ist kontinuierlicher Wissensaufbau unverzichtbar, um Ihre Container-Umgebung professionell zu verwalten. Die offizielle Docker-Dokumentation auf docs.docker.com ist der beste Ausgangspunkt mit ausführlichen Anleitungen, Tutorials und Referenzmaterial. Die Docker-Community-Foren und der Docker-Bereich auf Stack Overflow bieten Antworten auf konkrete Probleme, auf die Sie stoßen. Für tieferes Wissen über Container-Sicherheit und Best Practices für die Produktion sind der CIS Docker Benchmark und der NIST Application Container Security Guide wertvolle Quellen, die regelmäßig mit den neuesten Richtlinien aktualisiert werden. Investieren Sie Zeit in das Erlernen der Container-Orchestrierung mit Docker Compose und später Kubernetes, wenn Ihre Infrastruktur wächst.