Zum Inhalt springen
xaweho

Knowledge Base · fortgeschritten

Docker im Plesk nutzen

Docker-Container direkt aus Plesk starten — eigene Apps, Tools, Test-Setups isoliert auf dem vServer betreiben. Setup, typische Use-Cases.

fortgeschritten ·

Docker auf dem vServer ist eines der vServer-spezifischen Features. Du kannst eigene Anwendungen in Containern laufen lassen, isoliert vom Plesk-Stack — Node.js-APIs, Python-Backends, Custom-Tools. Hier wie’s geht.

Docker-Erweiterung in Plesk

Bei uns ist Docker auf vServers vorinstalliert. In Plesk:

Erweiterungen → Docker.

Du siehst eine Container-Verwaltung mit:

  • Liste laufender Container
  • Image-Browser (Docker Hub direkt durchsuchbar)
  • Volume-Verwaltung
  • Network-Konfiguration
  • Logs pro Container

Erste Container starten

Beispiel 1: Postgres-Datenbank

Wenn Du eine eigene PostgreSQL für eine spezifische App brauchst (Plesk-Standard ist MariaDB):

  1. Plesk → Docker → Container hinzufügen
  2. Image: postgres:16 oder spezifische Version
  3. Container-Name: mein-postgres
  4. Environment-Variables:
    • POSTGRES_USER=meineuser
    • POSTGRES_PASSWORD=<starkes-passwort>
    • POSTGRES_DB=meinedatenbank
  5. Volume: /var/lib/postgresql/data → Plesk-Volume erstellen, persistent
  6. Port: 5432 → wenn Du externen Zugriff willst, mappen auf Server-Port
  7. Erstellen → Container startet

Datenbank läuft, andere Apps können sich verbinden.

Beispiel 2: Node.js-API

Eigene Node-App in Container:

  1. Image: node:20-alpine
  2. Working-Dir: /app
  3. Volume: lokales Code-Verzeichnis → /app
  4. Command: node server.js
  5. Port: 3000<server-port>
  6. Restart-Policy: unless-stopped

Container startet App, läuft permanent.

Für Production-Setup: eigenes Image bauen mit Dockerfile.

Beispiel 3: Tools wie Portainer

Wenn Du Docker mehr feingranular verwalten willst als in Plesks UI:

  1. Image: portainer/portainer-ce
  2. Volume: Docker-Socket → /var/run/docker.sock
  3. Port: 9443 → externer HTTPS-Zugriff
  4. Container starten

Portainer-UI ist mächtiger als Plesks Docker-Tab. Beide parallel nutzbar.

Domain-Routing zu Containern

Container haben eigene Ports. Damit Endbenutzer per HTTPS auf eine Domain zugreifen, die zu einem Container zeigt:

  1. Plesk → Domain hinzufügen (z.B. api.deinedomain.de)
  2. Hosting & DNS → Hosting-Settings → Hosting-Typ: „Reverse Proxy” oder Custom-Konfig
  3. Reverse-Proxy auf localhost:3000 (Container-Port)
  4. SSL aktivieren (Let’s Encrypt)

Plesk leitet HTTPS-Traffic an die Container-App weiter.

Alternative: Custom-nginx-Config (per Ticket bei uns einrichten).

Docker-Compose

Plesks Docker-Tab unterstützt Multi-Container-Setups eingeschränkt. Für komplexe Compose-Files:

  • Per Reseller-SSH: docker-compose up -d
  • Plesk erkennt laufende Container und zeigt sie an

Compose-File-Beispiel für Multi-Service-App:

version: '3'
services:
  api:
    image: myapp:latest
    ports:
      - "3000:3000"
    environment:
      DB_HOST: db
  db:
    image: postgres:16
    volumes:
      - dbdata:/var/lib/postgresql/data

volumes:
  dbdata:

Speichern als docker-compose.yml, dann docker-compose up -d.

Volumes — Persistente Daten

Container sind ephemer — Daten in einem Container sind weg, wenn der Container gelöscht wird. Volumes sind persistent.

In Plesk → Docker → Volumes:

  • Neuer Volume: Name, Typ (Plesk-managed)
  • Beim Container-Setup: Volume auf Pfad mappen

Volumes liegen im File-System und sind im Backup mit drin.

Networks

Default: alle Container sind in einem Bridge-Network und können sich untereinander erreichen.

Für isolierte Setups: eigene Networks anlegen, Container in einzelne Networks trennen.

Beispiel: Frontend-Container im Public-Network mit Domain-Routing, Backend-Container im Internal-Network ohne externen Zugriff.

Restart-Policies

Wichtig für Production:

  • No (Default): Container startet nicht neu nach Crash
  • Always: immer neu starten
  • Unless-stopped: neu starten, außer Du hast manuell gestoppt
  • On-failure: nur bei Fehler-Exit-Code neu starten

Empfehlung: Unless-stopped für Production-Container.

Resource-Limits

Damit ein Container nicht den ganzen Server blockiert:

In Container-Setup → Erweitert:

  • CPU-Limit: 1.0 = ein voller Kern
  • Memory-Limit: 512m, 1g, etc.
  • Memory-Swap-Limit: empfohlen gleich Memory-Limit

Ohne Limits: Container kann theoretisch alle Server-Resourcen nehmen.

Container-Updates

Image-Updates sind manuell:

docker pull image:latest
docker stop mein-container
docker rm mein-container
docker run -d --name mein-container ... image:latest

Mit Plesk-UI: Container stoppen, mit neuem Image neu erstellen.

Tools wie Watchtower (auch als Container) machen Auto-Updates — Vorsicht bei produktiven Containern, lieber kontrolliert.

Backups von Container-Daten

Was ist in unserem Standard-Backup mit drin:

  • Volumes auf der File-System-Ebene → ja, kommt im Server-Snapshot mit
  • Container-Konfig in Plesk → ja
  • Container selbst (image-basiert) → nein, aber Image kann jederzeit neu gepullt werden

Bei Verlust kannst Du Container neu erstellen, Volume aus Backup zurückspielen.

Wichtig: Datenbank-Container brauchen besonderen Backup-Workflow:

  • Live-Backup von DB-Files ist riskant (Inkonsistenz)
  • Lieber regelmäßigen pg_dump / mysqldump als zusätzlichen Container-Job
  • Oder DB-Container mit konsistenter Snapshot-fähiger Storage

Häufige Use Cases

Eigene API neben WordPress-Sites

Container mit Node.js / Python API, Domain-Routing per Plesk-Reverse-Proxy auf api.domain.de.

Test-Tools für interne Nutzung

Container mit Code-Server (VS Code im Browser), GitLab CI Runner, Jenkins, etc.

Datenbank für spezielle App

Wenn Plesks MariaDB nicht passt: PostgreSQL, MongoDB, Redis als Container.

Monitoring-Stack

Grafana + Prometheus + Loki für Server-Monitoring (zusätzlich zu Plesk’s eigenem Monitoring).

Stolperfallen

Container-Konflikt mit Plesk-Services

Wenn Du Container auf Port 80/443 startest, kollidiert mit Plesk-Webserver. Lösung: Container immer auf abweichende Ports, Plesk macht Reverse-Proxy.

Disk-Space durch Container-Images

Docker-Images können viel Platz verbrauchen. Regelmäßig aufräumen:

docker system prune -a

Achtung: löscht auch ungenutzte Volumes (nur mit --volumes-Flag).

Container-Logs werden riesig

Default loggt Docker in JSON-Files, die wachsen. In Container-Setup oder global Log-Rotation aktivieren:

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

Wir können das Server-side Default einstellen — Ticket reicht.

Container hat Internet, kann aber nicht zur Außenwelt

Selten, meist DNS-Problem. In Docker-Konfig DNS-Server explizit setzen (z.B. 8.8.8.8).

Was Du nicht ohne Ticket machen kannst

  • Kernel-Module auf dem Host (z.B. für spezielle Container-Features)
  • iptables-Regeln Server-weit ändern
  • Custom-Daemon auf Host installieren (statt Container)

Solche Aufgaben: Ticket bei uns. Mehr in Anpassungen per Ticket.

Häufige Fragen

Brauche ich Docker-Vorkenntnisse? Etwas hilft. Plesks Docker-UI ist anfängerfreundlich, aber Konzepte (Image, Container, Volume, Network) musst Du kennen. Bei Bedarf: Online-Tutorials oder Docker’s eigene Doku.

Docker-Compose-Files importieren? Plesks UI: eingeschränkt. Per SSH und CLI: voll möglich.

Performance von Container vs. nativer Plesk-PHP? Container haben minimalen Overhead (1-3% bei modernen Linux). Für meiste Workloads irrelevant.

Können Endkunden Docker nutzen? Wenn Du im Service-Plan Docker-Berechtigung aktivierst: ja. Vorsicht: Endkunden-Container können Server-Last erhöhen.

Docker-Hub-Pulls werden langsam — was tun? Manchmal Rate-Limits von Docker. Lösung: Docker-Hub-Account einrichten (kostenlos) und in Plesk-Docker-Settings angeben.

Kann ich Docker-Engine selbst updaten? Nein. Docker-Engine ist OS-Komponente, machen wir auf Wunsch per Ticket.

Mein Container braucht spezielle Linux-Capabilities — geht das? Manche Capabilities (z.B. SYS_ADMIN) sind aus Sicherheitsgründen restricted. Bei Bedarf: Ticket bei uns, wir prüfen.

Multi-Server-Docker-Swarm — möglich? Single-Server-Docker ist Standard. Swarm-Setup auf Anfrage — Custom-Setup, schreib uns.

Kubernetes — geht das auch? Theoretisch ja, K3s/MicroK8s passt auf einen vServer. Praktisch: erfordert mehr Resourcen, anderen Admin-Workflow. Wir helfen bei Setup, wenn Du das wirklich willst.

Weiter geht’s

Passende Produkte
Tags
plesk vserver docker container

Hat dieser Artikel Dir geholfen?

Wenn nicht, schreib uns ein Ticket. Wenn ja, freuen wir uns über eine Empfehlung — beide bekommen 25 € Guthaben aufs Kundenkonto.