Für einige Programme benötigst Du eine Datenbank. Das kann zum Beispiel für eine Webseite sein oder sogar für Gameserver.
In diesem Artikel zeigen wir dir, wie einfach du im Cloud-Manager eine Datenbank inklusive PHPMyAdmin (Datenbank Verwaltung) installieren kannst.
Zunächst benötigst Du natürlich einen virtuellen Server. Das funktioniert mit jedem unserer vServer. Du kannst eine Datenbank über das Webinterface allerdings nur installieren, wenn Du auf deinem Server ein Linux Betriebssystem hast.
Gehe in den Cloud Manager deines Servers und scrolle nach unten. Dort findest Du die Aktion „App Installer„. Diesen benutzen wir, um Software auf deinem Server zu installieren.
Der App Installer im Cloud Manager
Klicke also auf die Kachel Webserver-Utilities. Es werden Dir verschiedene Apps angezeigt. Um eine MariaDB Datenbank auf deinem Server zu installieren, benötigt Du die Webserver-Utilities.
Wir benötigen die Datenbank (MariaDB). Für PHPMyAdmin wird ein Webserver mit PHP benötigt. Im sich öffnenden Konfigurations-Dialog wählst Du deshalb alle Kästchen an.
Alle Optionen auswählen
Mit dem Klick auf Installation beginnen wird das gewünschte Software-Paket auf deinem Server installiert. Warte einen Moment ab, bis der Vorgang abgeschlossen ist.
Webserver Utilities wurden installiert
Im Abschluss-Dialog findest Du alle Informationen zur Installation. Speichere diese Daten gut ab, denn diese werden von uns nicht gespeichert.
Zur Sicherheit legen wir das Root-Passwort aber auf deinem Server ab. So verlierst Du es nicht. Du solltest diese Datei aber löschen. Sie befindet sich nach der Installation im Root-Ordner. Das Passwort kann mit dem Befehl cat /root/.mysql-password ausgelesen werden.
Deine Datenbank ist jetzt also installiert. Deine Verwaltungsoberfläche findest Du unter http://[IP]/phpmyadmin. Dort kannst Du dich mit dem bekannten Passwort und dem Nutzernamen root einloggen.
Damit alle Nutzer von fairen Preisen profitieren, gilt für Traffic ein Fair-Use-Prinzip. Jeder vServer hat außerdem ein festes Inklusivvolumen pro Monat. Ist es verbraucht, wird die Bandbreite gedrosselt (Details unten).
Warum gibt es ein Limit?
Ein Beispiel: Ein günstiger 4-€-vServer verbraucht 5 TB innerhalb von 20 Tagen. Die entstehenden Kosten lägen deutlich über dem Monatsbetrag. Die meisten Kund:innen benötigen < 1 TB/Monat. Deshalb hat jedes Produkt ein festes Inklusivvolumen, und dauerhaft ausreißende Nutzungsmuster begrenzen wir zusätzlich.
Inklusivvolumen je Produkt
Wie viel Traffic in deinem Server enthalten ist, zeigt die Traffic-Mengen Tabelle. Beim KVM Root Server 3.5 und beim Ryzen VPS sind es 10 TB Traffic pro Monat. Wer mehr benötigt, kann zusätzlichen Traffic nachbuchen (siehe Preise unten).
Burst-Geschwindigkeit & Drosselung
Volle Bandbreite bis zum Inklusivvolumen deines Produkts.
Danach sinkt die Bandbreite auf 10 %, bis du Traffic nachbuchst oder der nächste Reset-Tag kommt.
Nachbuchung von Traffic
Bis 10 TB: 9,50 € / TB
Ab 10 TB zusätzlich: 8,50 € / TB
Sonder-Traffic verfällt am Ende des Abrechnungszeitraums.
Sonder-Traffic wird monatlich abgerechnet; Buchungstag = Reset-Tag (siehe unten).
Definitionen
Öffentlich
Ohne Authentifizierung im Browser/App erreichbar. Kommerzielle Nutzung mit handelsüblich großen Trafficmengen (z. B. große App/Software-Verteilnetze) ist ausgeschlossen – oder nur nach Absprache.
Downloadbase
Ein öffentlicher Download-Hub/Index/Mirror. < 10 TB/Monat ist okay.
≥ 10 TB/Monat ⇒ Downloadbase ⇒ nicht erlaubt (sofern öffentlich).
Was ist erlaubt / nicht erlaubt?
Erlaubt (innerhalb Fair-Use)
Hochfrequente Websites, Shops, APIs.
Rechtlich zulässige Downloads.
Nextcloud/Storage/Backups ohne öffentlichen Zugang (Family/Geschäftlich/Team).
Privates/Family-VPN, Site-to-Site fürs eigene Netz, mobiles VPN (nicht öffentlich).
Legale Torrents (z. B. Linux-ISOs).
24/7-Livestream zu YouTube/Twitch oder eigenem Dienst, solange innerhalb Fair-Use; bei eigenem Dienst Encoder/Loadbalancer einsetzen.
IPTV aus legalen Quellen, keine Redistribution.
IP/Port-Scanning zu wissenschaftlichen oder begründeten Zwecken, throtteln & Rate-Limits beachten – Nutzung auf eigenes Risiko, da bei Abuse-Meldungen gesperrt wird
Mailserver-Betrieb (SMTP/IMAP/Submission) inkl. Mailinglisten, solange Best Practices eingehalten werden (SPF/DKIM/DMARC, kein Spam)
Scraping/Crawling für eigene Projekte oder Forschung, wenn Ziele (robots.txt, ToS) respektiert werden und Fair-Use eingehalten wird
Crypto-Mining Traffic (Verbindungen zu Pools, KEIN Schürfen!), sofern nur der Traffic-Aspekt betroffen ist
Ausdrücklich nicht erlaubt
Öffentliche Downloadbases/Mirrors/Directory-Listings (ab ≥ 10 TB/Monat oder ohne Authentifizierung)
Öffentlich angebotenes VPN/Proxy/SOCKS (kommerziell oder Community-Zugänge)
Prävention / Anpassung (z. B. Authentifizierung aktivieren, Rate-Limits/Throttling, Logging, Patches/Updates, Malware-Scan, Absicherung der Dienste).
Freischaltung nach erfolgreicher Umsetzung und kurzer Bestätigung.
Hinweis: Traffic-Probleme entstehen in der Praxis häufig durch kompromittierte Server. Die volle Verantwortung liegt beim Betreiber. Absichern hilft – u. a. durch: starke Passwörter/SSH-Keys, zeitnahe Updates, Firewall/Fail2ban, minimale öffentliche Angriffsfläche (nur benötigte Ports/Dienste), Monitoring/Alerts.
Preise & Kontingente (Beispiele)
Bis 10 TB: 9,50 € / TB
Ab 10 TB zusätzlich: 8,50 € / TB Beispiel: 2 TB Extra-Traffic = 19,00 € einmalig. Der Sonder-Traffic wird monatlich abgerechnet; der Buchungstag ist stets der Tag der ursprünglichen Bestellung des Dienstes.
Traffic-Mengen laut Produktseiten (Stand: 14.10.2026)
Produktreihe
Inklusiv-Traffic (Monat)
Hinweise
KVM Root Server 3.5 (konfigurierbar, Linux/Windows)
10 TB
Danach 10 % Bandbreite, per Nachbuchung wieder volle Bandbreite.
Wenn du auf deinem virtuellen Server einen MySQL oder MariaDB Server installierst, wird dieser automatisch mit der Regel „nur Lokal zulassen“ installiert. Wenn Du den Server von außen erreichbar machen möchtest, musst Du die Konfiguration des Servers anpassen.
Wir zeigen Dir anhand eines Beispiels (MariaDB), wie du das bewerkstelligen kannst.
Fehlermeldung, die bedeutet, dass MySQL von außen nicht erreichbar ist:
ERROR 2002 (HY000): Can't connect to MySQL server on '168.119.29.XXX' (115)
Voraussetzungen
Du benötigst einen Linux Server.
Du musst MariaDB installiert haben (apt-get install mariadb-server).
Der Port 3306 muss in einer Firewall freigegeben sein, sofern eine verwendet wird.
Du hast einen Nutzer erstellt, der entweder von überall „%“ aus zugreifen kann oder per IP-Adresse/Host gefiltert wird.
Konfiguration anpassen
Passe die Datei /etc/mysql/mariadb.conf.d/50-server.cnf an. Öffne diese mit einem Editor deiner Wahl.
Im Bereich unter [mysqld] findest Du die Einstellung „bind-address“. Ändere die Konfiguration wie folgend beschrieben.
Vorher
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 127.0.0.1
Nachher
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
bind-address = 0.0.0.0
Speichere die Datei ab und starte deinen Datenbankserver neu.
systemctl restart mysql
Danach ist dein MySQL Server auch von außen erreichbar. Aus Sicherheitsgründen empfehlen wir dir dringend, dass Du für externe Nutzer einen separaten MySQL-Zugang erstellst. Der Root-Zugang sollte immer nur intern funktionieren.
Solltest Du Fragen zu diesem Thema haben, melde Dich gerne bei uns. Wir helfen Dir dann gern weiter!
Mit dem Programm Microsoft Remote Desktop kannst Du dich bequem auf deinen Windows Server einloggen.
Du kannst es auf dem MacOS Desktop-PC, einem iPad und sogar auf dem iPhone installieren. So kannst du jederzeit per Remote auf deinen Server zugreifen.
Dein Download lädt im Schneckentempo oder die Deploy-Pipeline braucht gefühlt ewig? Hier erfährst du, woran es liegt – und wie du blitzschnell wieder auf Touren kommst.
Tarif-Quick-Check
Erfahre, in welchem Server-Tarif welche maximale Bandbreite enthalten ist. Die Portgeschwindigkeit bedeutet: das absolute obere Limit, das dein virtueller Server erreichen kann.
Tarif
Maximale Portgeschwindigkeit
Konfigurierbare vServer
bis zu 2 Gbit/s
Smart Value & Smart Essential
bis zu 1 Gbit/s
Welche vServer bieten welche Netzwerk-Geschwindigkeit?
Bits vs. Bytes – der klassische Stolperstein
Da es bereits Missverständnisse gab, hier noch einmal der Unterschied zwischen Gbit/s und GB/s.
Einheit
Bedeutet …
Faustformel
Gbit/s
Gigabit pro Sekunde (Bit-Angabe)
1 Gbit/s ≈ 0,125 GB/s
GB/s
Gigabyte pro Sekunde (Byte-Angabe)
1 GB/s = 8 Gbit/s
Gbit/s vs. GB/s
1 Byte = 8 Bit. Wenn also in deinem Monitoring 1 Gbit/s steht, entspricht das rund 125 MB/s. (Und keineswegs 1 Gigabyte pro Sekunde.)
Unsere Standard-Power: 1 Gbit/s
Jeder virtuelle Server startet mit 1 Gbit/s symmetrischer Bandbreite – für Upload und Download.
Das reicht problemlos für:
Continuous-Integration-Pipelines
HD-Video-Streaming
High-Traffic-Shops
Schnelle APT Downloads
Fast DL für Gameserver
Upload hinkt hinterher? Download passt nicht?
In seltenen Fällen kann ein Problem vorliegen. Melde dich einfach kurz bei unserem Support – wir sehen uns das Problem dann an und besprechen mit Dir, was zu tun ist.
Beispielrechnung
600 Mbit/s ÷ 8 = 75 MB/s
Falls du also im Speedtest 75 MB/s siehst, nutzt du 600 Mbit/s – bei „bis zu 1 Gbit/s“ alles im grünen Bereich.
Noch Probleme?
Wir helfen Dir gerne weiter, sollte ein Problem mit dem Download oder Upload bestehen. Es ist immer hilfreich, wenn Du uns noch einen Speedtest zukommen lässt. Achte dabei aber bitte auf eine vernünftige Test-Location (in Deutschland).
Du hast die Möglichkeit, den Speicher eines virtuellen Servers jederzeit zu erhöhen, sofern Du noch nicht die größte Stufe erreicht hast. Dabei gibt es ein paar Kleinigkeiten zu beachten.
Es gibt in der Regel 3 Gründe, warum Dir nach einem Upgrade der Speicher noch nicht zur Verfügung steht.
Der Server muss neu gestartet werden
Wenn Du bei einem KVM Server die Speicherkapazität änderst, musst Du deinen Server auf jeden Fall im Webinterface einmal stoppen und wieder starten. Beim Start wird die Änderung der virtuellen Festplatte dann durchgeführt. In Linux-basierten Servern wird der neue Speicherplatz dann /dev/sda1 zugewiesen.
Ein Snapshot ist vorhanden
Sollte ein Neustart über das Webinterface keine Änderung bewirkt haben, hast Du möglicherweise Snapshots aktiv. Entferne alle Snapshots und starte den Server anschließend wieder neu. Manchmal musst du den Support dafür anschreiben, damit dieser den Änderungsvorgang kostenlos für Dich neu anstößt.
Der freigewordene Speicherplatz muss zugewiesen werden (Windows)
Wenn deine Festplatte erweitert wird, wird der freigewordene Festplattenspeicher nicht einem Festplattenlaufwerk (z. B. C:\) zugewiesen. Das musst Du selbst erledigen. Wie das geht, erklären wir im Beitrag Windows Festplattenspeicher erweitern.
Das hat alles nicht geholfen
Melde Dich gerne bei uns im Support. Wir können dann nachsehen, was nicht geklappt hat. Du wirst deinen Festplattenspeicher auf jeden Fall erhalten.
Ein Dedicated Server kann nicht so einfach verwaltet werden, wie ein virtueller Server. Ein virtueller Server kann schnell gestartet werden, da es ein Teil auf einem physischen System ist.
Dedicated Server müssen spezielle Motherboard-Commands unterstützen, um von der Ferne aus gestartet werden zu können. Nicht jedes Motherboard unserer Dedicated Server unterstützt das.
Wir bitten daher, vom Herunterfahren eines Dedicated Servers abzusehen. Im Zweifel müssen wir dann einen Techniker losschicken, der den Server manuell wieder startet. Das kann einige Zeit in Anspruch nehmen.
Solltest Du deinen Server versehentlich heruntergefahren haben, steht Dir unser Support jederzeit zur Verfügung.
Ja, auf jedem vServer von Prepaid-Hoster kannst du Docker ohne Einschränkungen nutzen. Alle unsere vServer laufen auf KVM, also mit eigenem Kernel. Docker, Docker Compose und Images vom Docker Hub laufen darauf genauso wie auf einem eigenen Rechner. Hier erfährst du, was Docker ist, wie du es auf Debian oder Ubuntu installierst, wie deine Daten Neustarts überleben und welche Projekte sich auf einem vServer mit Docker lohnen.
Den App-Installer im Cloud Manager brauchst du dafür nicht: Docker ist dort derzeit nicht enthalten, die Installation über die offizielle Paketquelle dauert aber nur ein paar Minuten.
Was ist Docker?
Docker ist eine Plattform, die Anwendungen in Containern startet. Ein Container bringt alles mit, was die Anwendung braucht: Programm, Bibliotheken, Konfiguration. Die Vorlage dafür heißt Image. Aus einem Image startest du beliebig viele Container, und jeder läuft auf jedem Linux-Server gleich.
Spannend ist der Vergleich mit deinem vServer selbst. Ein vServer ist ein virtueller Server: KVM teilt einen physischen Server in mehrere Maschinen mit eigenem Kernel, eigenem Speicher und eigenem Betriebssystem auf. Docker macht eine Ebene tiefer etwas Ähnliches. Jeder Container bekommt ein eigenes Dateisystem, ein eigenes Netzwerk und eine eigene Prozessliste, und du kannst ihm CPU und RAM begrenzen. Ein Container ist damit fast schon ein vServer auf deinem vServer.
Der Unterschied: Alle Container teilen sich den Kernel deines vServers. Deshalb starten sie in Sekunden und brauchen kaum Overhead. Gleichzeitig ist die Trennung schwächer als zwischen zwei virtuellen Maschinen. Ein Container ist ein gut abgeschotteter Prozess, kein vollständiger Server.
vServer (KVM)
Docker-Container
Kernel
eigener Kernel
teilt den Kernel des vServers
Start
Minuten (Installation), Sekunden (Neustart)
Sekunden
Betriebssystem
Linux oder Windows Server
Linux-Userland aus dem Image
Isolation
Hardware-Virtualisierung
Namespaces und cgroups im Kernel
Typischer Einsatz
ganzer Server mit Root-Zugriff
eine Anwendung pro Container
Warum Docker auf KVM problemlos läuft
Docker greift tief in den Kernel ein (Namespaces, cgroups, Overlay-Dateisystem, Paketfilter). Bei Container-Virtualisierungen wie dem früheren OpenVZ teilt sich der Gast den Kernel mit dem Host, dort lief Docker deshalb nur eingeschränkt oder gar nicht. Bei KVM hast du einen eigenen Kernel und volle Kontrolle darüber, Docker funktioniert ohne Sonderwege. Mehr zum Ende von OpenVZ bei uns liest du unter vServer mit OpenVZ wurden eingestellt.
Eine Grenze gibt es: Verschachtelte Virtualisierung ist auf unseren KVM-vServern deaktiviert. Docker-Container laufen, eigene virtuelle Maschinen (KVM, VirtualBox, Proxmox) oder Werkzeuge, die intern eine VM starten, aber nicht. Details stehen in Kann ich auf meinem vServer selbst virtualisieren?
Vorteile von Docker auf dem vServer
Sauberes System: Jede Anwendung bringt ihre Abhängigkeiten im Image mit. PHP 8.1 für das eine Projekt und PHP 8.4 für das andere vertragen sich, ohne dass du am Grundsystem herumbaust.
Reproduzierbar: Eine Compose-Datei beschreibt dein komplettes Setup. Auf einem neuen Server tippst du docker compose up -d und hast denselben Stand.
Schnelle Updates und Rollbacks: Neues Image ziehen, Container neu starten. Klappt etwas nicht, gehst du auf den vorherigen Tag zurück.
Mehrere Dienste auf einem Server: Webseite, Datenbank, Monitoring und Bot laufen getrennt voneinander auf einem vServer.
Wenig Overhead: Container teilen sich den Kernel. Der Großteil von CPU und RAM bleibt für deine Anwendungen.
Riesige Auswahl: Für fast jede bekannte Server-Software gibt es fertige Images auf dem Docker Hub.
Kein Vendor-Lock-in: Deine Compose-Dateien und Volumes laufen bei jedem Linux-Server weiter.
Welcher vServer passt für Docker?
Docker läuft auf allen unseren Linux-vServern. Die Docker Engine selbst braucht wenig, den Bedarf bestimmen deine Container. Als Faustregel: Ein einzelner kleiner Dienst läuft mit 1 GB RAM, ein Stack aus Webanwendung, Datenbank und Reverse Proxy fühlt sich ab 2 bis 4 GB RAM wohl. Images und Volumes belegen schnell einige GB, plane den Speicher also großzügig.
KVM Root 3.5 (konfigurierbar): 1 bis 14 Kerne, 1 bis 32 GB RAM, 50 bis 400 GB NVMe, IPv4 und ein /64-IPv6-Netz inklusive. Die flexibelste Wahl für Docker, Ressourcen lassen sich später per Upgrade anpassen.
Smart Value: günstige Pakete mit 1 bis 12 GB RAM. Standardmäßig nur IPv6, eine IPv4-Adresse kannst du als Option dazubuchen. Beachte dazu den Abschnitt zu IPv6 weiter unten.
Smart Essential: SSH-only-Server mit IPv4 und IPv6 inklusive und wählbarem Speicher. Gut für Entwickler, die alles per Terminal und Compose erledigen.
Ryzen VPS: hohe Single-Core-Leistung, sinnvoll für rechenlastige Container, etwa Gameserver.
Als Betriebssystem empfehlen wir Debian 13 oder Debian 12, alternativ Ubuntu 24.04 oder 22.04. Diese Versionen unterstützt Docker offiziell. Debian 11 und Ubuntu 20.04 stehen bei Docker nicht mehr auf der Liste, installiere dort lieber neu. Welche Images wir anbieten, steht unter Welche Betriebssysteme stehen zur Verfügung? Einen passenden Server findest du auf unserer Seite zu Docker vServern.
Docker installieren
Installiere Docker aus der offiziellen Paketquelle von Docker. Die Pakete docker.io aus den Debian- oder Ubuntu-Quellen sind oft deutlich älter und bringen Compose nicht als aktuelles Plugin mit. Die folgenden Befehle gehen davon aus, dass du als root per SSH angemeldet bist. Arbeitest du mit einem normalen Benutzer, setze sudo davor.
Schritt 1: System aktualisieren und alte Pakete entfernen
Auf einem frisch installierten Server ist meist nichts zu entfernen, der Befehl schadet aber nicht. Er entfernt inoffizielle Docker-Pakete, die mit der offiziellen Version kollidieren würden.
Docker startet danach automatisch und ist für den Systemstart aktiviert.
Schritt 4: Installation prüfen
systemctl status docker
docker run --rm hello-world
docker compose version
Gibt hello-world eine Begrüßung aus, ist Docker einsatzbereit. Updates von Docker kommen ab jetzt ganz normal mit apt update && apt upgrade. Wie du Updates generell im Griff behältst, steht in Mein Linux Server hat Updates! Was jetzt?
Optional: Docker ohne root nutzen
Willst du Docker mit einem normalen Benutzer bedienen, füge ihn der Gruppe docker hinzu und melde dich neu an:
usermod -aG docker deinbenutzer
Wichtig: Wer in der Gruppe docker ist, hat praktisch root-Rechte auf dem Server. Nimm dort also nur Benutzer auf, denen du auch root geben würdest. Wer mehr Abschottung möchte, schaut sich den Rootless-Modus von Docker an.
Schnell zum Testen: das Installationsskript
Docker bietet unter get.docker.com ein Skript, das die Paketquelle automatisch einrichtet. Für Testserver ist das bequem, für den Dauerbetrieb empfiehlt Docker selbst den Weg über die Paketquelle oben. Schau dir das Skript vor dem Ausführen an:
curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh --dry-run
sh get-docker.sh
Daten dauerhaft speichern
Container sind zum Wegwerfen gedacht. Löschst du einen Container oder ersetzt ihn durch ein neueres Image, ist alles weg, was nur im Container lag. Datenbanken, Uploads und Konfigurationen gehören deshalb in ein Volume oder einen Bind Mount.
Volumes: von Docker verwaltet
Volumes legt Docker selbst unter /var/lib/docker/volumes/ an. Das ist der empfohlene Weg für Datenbanken und Anwendungsdaten.
docker volume create webdaten
docker run -d --name web --restart unless-stopped \
-v webdaten:/usr/share/nginx/html \
-p 8080:80 nginx:stable
docker volume ls
docker volume inspect webdaten
Bind Mounts: ein Ordner deines Servers
Mit einem Bind Mount bindest du einen bestimmten Ordner deines vServers in den Container ein. Praktisch für Konfigurationsdateien, die du direkt per SFTP oder im Editor bearbeiten willst. Mit :ro darf der Container nur lesen.
Unsere kostenlosen Backups sichern die komplette Festplatte deines vServers, also auch alle Volumes. Sie laufen im laufenden Betrieb. Bei Datenbanken solltest du deshalb zusätzlich einen Dump anlegen, damit du einen garantiert konsistenten Stand hast. Ein einzelnes Volume packst du so in ein Archiv:
mkdir -p /root/backup
docker run --rm -v webdaten:/daten:ro -v /root/backup:/backup alpine \
tar czf /backup/webdaten.tar.gz -C /daten .
Vor größeren Updates lohnt sich ein Snapshot im Cloud Manager. Geht etwas schief, bist du per Klick wieder auf dem alten Stand. Snapshots werden nach 48 Stunden automatisch gelöscht und ersetzen kein Backup.
Docker Compose
Sobald eine Anwendung aus mehreren Containern besteht, wird docker run unübersichtlich. Mit Docker Compose beschreibst du alle Container, Netzwerke und Volumes in einer Datei namens compose.yaml und startest alles mit einem Befehl. Compose ist mit dem Paket docker-compose-plugin bereits installiert. Der Befehl lautet docker compose mit Leerzeichen. Das alte docker-compose mit Bindestrich ist veraltet.
Beispiel: WordPress mit MariaDB
Lege einen Projektordner an und darin die Datei compose.yaml:
mkdir -p /opt/wordpress && cd /opt/wordpress
nano compose.yaml
Danach erreichst du WordPress unter http://62.68.75.69:8080, wobei du die IP natürlich durch die deines Servers ersetzt. Für den echten Betrieb mit Domain und HTTPS setzt du einen Reverse Proxy davor (siehe Anwendungsbeispiele).
Die wichtigsten Compose-Befehle
Alle Befehle führst du im Projektordner aus:
docker compose up -d # alles starten (im Hintergrund)
docker compose ps # Status der Container
docker compose logs -f # Logs live verfolgen
docker compose pull && docker compose up -d # Images aktualisieren
docker compose down # stoppen und Container entfernen (Volumes bleiben)
docker compose exec db bash # Shell im Container "db"
Mit restart: unless-stopped starten deine Container nach einem Neustart des vServers automatisch wieder. Einen eigenen systemd-Dienst brauchst du dafür nicht.
Docker Hub
Der Docker Hub ist die zentrale Registry, aus der Docker standardmäßig Images lädt. Schreibst du image: nginx:stable, holt Docker das Image von dort.
Vertrauenswürdige Images wählen: Achte auf die Kennzeichnung „Docker Official Image“ oder „Verified Publisher“. Bei Images unbekannter Herkunft läuft fremder Code auf deinem Server.
Tags festlegen:latest ist bequem, kann aber beim nächsten pull eine neue Hauptversion bringen. Für Datenbanken nimmst du besser eine feste Version wie mariadb:11 oder postgres:17.
Images suchen und laden:docker search nginx und docker pull nginx:stable.
Pull-Limits
Der Docker Hub begrenzt Downloads ohne Anmeldung auf 100 Pulls in 6 Stunden pro IPv4-Adresse beziehungsweise pro IPv6-/64-Netz. Mit einem kostenlosen Docker-Konto sind es 200 Pulls in 6 Stunden. Jeder vServer bei uns hat eine eigene IPv4 bzw. ein eigenes /64-Netz, das Limit teilst du also mit niemandem. Wer viele Images zieht, etwa in CI-Pipelines, meldet sich an:
docker login
Neben dem Docker Hub gibt es weitere Registries wie ghcr.io (GitHub) oder quay.io. Die nutzt du genauso, indem du den Registry-Namen vor das Image schreibst, zum Beispiel ghcr.io/benutzer/projekt:1.0.
Docker auf einem Smart Value mit nur IPv6
Unsere Smart Value Server haben standardmäßig nur IPv6. Der Docker Hub ist per IPv6 erreichbar, docker pull funktioniert also direkt. Zwei Dinge musst du aber wissen:
Container brauchen ein IPv6-Netz. Das Standardnetz von Docker vergibt nur IPv4-Adressen. Auf einem Server ohne IPv4 kommen deine Container dann nicht ins Internet. Aktiviere IPv6 für das Netz deines Compose-Projekts, Docker vergibt dann automatisch ein privates IPv6-Netz und leitet den Verkehr nach außen weiter.
Nicht jede Gegenstelle spricht IPv6. Manche Registries, APIs oder Update-Server sind nur per IPv4 erreichbar. Einen NAT64-Dienst bieten wir nicht an. Ob ein Ziel IPv6 kann, prüfst du mit dig AAAA ghcr.io. Kommt keine Adresse zurück, buchst du im Cloud Manager eine IPv4-Adresse dazu.
IPv6 für ein Compose-Projekt aktivierst du mit diesem Block am Ende der compose.yaml:
networks:
default:
enable_ipv6: true
Für einzelne Container mit docker run legst du ein eigenes Netz an und hängst den Container dort ein:
Was Kunden bei uns typischerweise auf einem vServer mit Docker betreiben:
Reverse Proxy mit HTTPS: Traefik, Caddy oder Nginx Proxy Manager nehmen Anfragen auf Port 80 und 443 an, holen automatisch Let’s-Encrypt-Zertifikate und verteilen den Verkehr per Domain auf deine Container. Die Basis für fast jedes Setup mit mehreren Diensten.
Automatisierung mit n8n: n8n läuft als Container mit eigener Datenbank. Eine Anleitung findest du im n8n Installations-Guide.
Eigene Cloud: Nextcloud mit Datenbank und Redis als Compose-Stack, deine Daten bleiben im Rechenzentrum in Offenbach am Main bei Frankfurt.
Mailserver: Mailcow ist komplett auf Docker aufgebaut. Port 25 ist bei uns ausgehend offen. Achte auf einen passenden rDNS-Eintrag.
Monitoring: Uptime Kuma überwacht deine Webseiten, Prometheus und Grafana zeigen die Auslastung deiner Container.
Entwicklung und Git: Gitea oder Forgejo als eigener Git-Server, CI-Runner für GitHub Actions oder GitLab, Staging-Umgebungen für Laravel, Node.js oder Python.
Passwortmanager: Vaultwarden als schlanker, selbst gehosteter Server für Bitwarden-Clients.
Gameserver und Bots: Panels wie Pterodactyl starten Gameserver in Containern, Discord- und TeamSpeak-Bots laufen sauber getrennt nebeneinander.
Webseiten und Shops: WordPress wie im Beispiel oben, aber auch Shopware oder Ghost lassen sich als Compose-Stack betreiben.
Häufige Stolpersteine
Veröffentlichte Ports umgehen die Firewall
Mit -p 8080:80 oder ports: trägt Docker eigene Paketfilter-Regeln ein. Diese greifen vor ufw oder firewalld. Ein Port, den du in ufw gesperrt hast, ist trotzdem aus dem Internet erreichbar, wenn ein Container ihn veröffentlicht. Bei uns sind auf Linux-Servern zudem alle Ports standardmäßig offen (Sind alle Ports freigegeben?).
Dienste, die nur intern erreichbar sein sollen (Datenbank, Admin-Oberfläche hinter dem Reverse Proxy), bindest du deshalb an localhost:
ports:
- "127.0.0.1:8080:80"
Container im selben Compose-Projekt erreichen sich über den Dienstnamen (im Beispiel db), dafür brauchst du gar keinen veröffentlichten Port. Eigene Filterregeln für Container gehören in die iptables-Chain DOCKER-USER. Docker arbeitet standardmäßig mit iptables, auf aktuellen Debian- und Ubuntu-Systemen über das nftables-Backend von iptables. Eigene Regelsätze, die du direkt mit nft anlegst, unterstützt Docker im Standardmodus nicht. Seit Docker 29 gibt es ein eigenes nftables-Backend, es ist aber noch experimentell. Mehr zur Absicherung allgemein: Linux Server absichern.
Festplatte läuft voll
Alte Images, gestoppte Container und Build-Cache sammeln sich an. Den Verbrauch prüfst du so:
docker system df
docker image prune # ungenutzte Images ohne Tag löschen
docker system prune # gestoppte Container, ungenutzte Netze und Images aufräumen
Vorsicht mit docker system prune --volumes: Das löscht auch Volumes, die gerade kein Container nutzt, und damit eventuell deine Daten.
Ein zweiter Klassiker sind Container-Logs, die ohne Limit wachsen. Begrenze sie global in /etc/docker/daemon.json und starte Docker neu. Die Einstellung gilt für neu erstellte Container.
Container teilen sich CPU und RAM deines vServers. Mit docker stats siehst du live, welcher Container wie viel verbraucht. Einzelne Container begrenzt du in Compose mit cpus: "1.0" und mem_limit: 512m. Dauerhaft hohe Last zählt bei uns wie jede andere Last, siehe Load-Regel bei KVM. Reichen die Ressourcen nicht mehr, ist ein Upgrade im Cloud Manager meist der einfachste Weg.
„Cannot connect to the Docker daemon“
Entweder läuft der Dienst nicht (systemctl start docker, Fehler in journalctl -u docker) oder dein Benutzer ist nicht in der Gruppe docker. Nach usermod musst du dich einmal ab- und wieder anmelden.
Docker vServer mieten
Du suchst noch einen vServer mit Docker? Alle unsere Linux-vServer laufen auf KVM mit AMD EPYC oder Ryzen und NVMe im Rechenzentrum maincubes FRA01 in Offenbach am Main. Aufladen statt abonnieren: Du zahlst per Prepaid-Guthaben, ohne Mahnungen und ohne Bonitätsprüfung. Alle Pakete im Überblick findest du auf unserer Seite Docker Hosting: vServer mit Docker.
Noch Fragen zu Docker auf deinem Server? Schreib uns einfach über das Formular unten oder per Ticket.
In diesem Beitrag zeigen wir Dir, wie Du auf deinem virtuellen Server schnell und einfach unterschiedliche Java-Versionen (1.8, 16, 17, …) installieren kannst.
Wir stellen ein Script zur Verfügung, das unterschiedliche Open Source Java-Versionen auf deinem Server installiert. Du musst dich lediglich als root auf dem Server einloggen und kannst mit dem Ausführen der automatischen Installation beginnen.
Wir installieren verschiedene Versionen für dich im Ordner /usr/lib.
Unterstützte Versionen
Aktuell werden folgende Versionen unterstützt:
jdk-13.0.1_linux-x64 -> java version "13.0.1" 2019-10-15
-> /usr/lib/jdk-13.0.1/bin/java
jre-8u241-linux-x64 -> java version "1.8.0_241"
-> /usr/lib/jre1.8.0_241/bin/java
openjdk-16.0.1_linux-x64 -> openjdk version "16.0.1" 2021-04-20
-> /usr/lib/jdk-16.0.1/bin/java
openjdk-17.0.1_linux-x64 -> openjdk version "17.0.1" 2021-10-19
-> /usr/lib/jdk-17.0.1/bin/java
Installation
Um diese Versionen auf deinen Server zu installieren, führe bitte folgenden Befehl aus:
bash <(wget -qO - https://pph.sh/docs/java.sh)
Alternativ kannst Du auch den App-Installer nutzen, um Java zu installieren.
Cloud Manager: Java-Pakete installieren
Standard Version ändern
Um die Standard-Version zu setzen (java in der Konsole), führe nach der Installation folgenden Befehl aus:
select-default-java
Hier wählst du aus, welche Version als Standard-Java verwendet werden soll. Wir erstellen einen Link von /bin/java zur gewählten Version.
Verfügbare Versionen ansehen
Um alle vom Script installierten Versionen anzuzeigen, führe nach dem Ausführen des Java-Installers folgenden Befehl aus:
Du kannst im Plesk Webinterface ganz einfach ein kostenloses Zertifikat anlegen, das auch für alle Subdomains gültig ist. Wir beschreiben dir, wie es geht.