Was ist Portainer? Die Docker-Weboberfläche im Überblick
Portainer ist eine der populärsten Open-Source-Weboberflächen für die Verwaltung von Docker-Umgebungen. Statt sich ständig per SSH auf den Server einzuloggen und Container per Kommandozeile zu administrieren, bekommst du mit Portainer ein grafisches Dashboard, das sämtliche Docker-Ressourcen auf einen Blick darstellt – Container, Images, Volumes, Netzwerke, Stacks und vieles mehr. Das Projekt steht unter der Zlib-Lizenz und wurde ursprünglich von Portainer.io ins Leben gerufen, inzwischen treibt ein großes Community-Team die Weiterentwicklung voran.
Portainer ist völlig unabhängig davon, ob dein Docker-Server auf einem lokalen Rechner, einem Raspberry Pi im Heimnetz oder einem leistungsstarken VPS in der Cloud läuft. Die Web-UI kommuniziert über die Docker-API mit deiner Engine und erlaubt dir, Container zu starten, zu stoppen, zu neustarten, Logs einzusehen, Terminal-Sitzungen zu öffnen, Images zu pullen und Netzwerke anzulegen – alles bequem per Mausklick. Dabei unterscheidet Portainer zwischen zwei Komponenten: dem Portainer Server (dem zentralen Management-Dashboard) und dem Portainer Agent, der auf weiteren Docker-Hosts installiert wird, um diese remote zu verwalten.
Besonders für DevOps-Einsteiger, die Docker gerade erst kennenlernen, ist Portainer ein Segen. Die visuelle Darstellung von Containern, Port-Bindungen, Volume-Mounts und Umgebungsvariablen macht die Container-Welt greifbarer. Aber auch erfahrene Administratoren profitieren: Das Dashboard spart im Alltag enorm viel Zeit, wenn es darum geht, schnell den Status aller laufenden Services zu checken, Logs zu filtern oder kurze Befehle in Container-Konsolen abzusetzen.
Im Folgenden gehen wir Schritt für Schritt durch die Installation von Portainer auf einem VPS, zeigen die wichtigsten Funktionen, die Einrichtung von HTTPS per Traefik, das User-Management, Backup-Strategien und einen Vergleich mit Alternativen wie Dockge, Yacht und Kubernetes-Dashboards.
Portainer vs. Dockge, Yacht und Kubernetes Dashboards
Portainer ist nicht die einzige Docker-Web-UI auf dem Markt. Ein Blick auf die Alternativen hilft bei der Entscheidung:
Dockge ist ein relativ neues Open-Source-Tool, das sich stark auf docker-compose.yml-Dateien (Stacks) konzentriert. Es bietet einen hübschen Editor mit Syntax-Highlighting und eignet sich besonders zum schnellen Editieren von Compose-Dateien. Im Vergleich zu Portainer fehlt Dockge aber die Tiefe: Kein integriertes Image-Management, keine detaillierten Volume- und Network-Ansichten, kein Multi-Host-Support und kein RBAC (Role-Based Access Control). Dockge ist eher ein schlanker Stack-Editor, Portainer ein vollwertiges Management-Panel.
Yacht ist eine weitere schlanke Docker-Web-UI mit Fokus auf Templates und App-Templates. Yacht wirkt moderner und minimalistischer, wird aber von einer deutlich kleineren Community betreut und hat weniger Features als Portainer. Wer nur einfache Container starten und stoppen möchte, fährt mit Yacht gut – für ernsthafte Server-Verwaltung ist Portainer die ausgereiftere Wahl.
Kubernetes Dashboards wie das offizielle Kubernetes Dashboard, Lens oder Octant sind für Kubernetes-Cluster optimiert. Wer K3s auf dem VPS betreibt, erhält dort natürlich eine mächtige Oberfläche für Pods, Deployments, Services und Ingresses. Aber Kubernetes ist für den Betrieb weniger Containern (etwa 5–15) massiv überdimensioniert. Portainer ist in diesen Szenarien der klar richtige Ansatz: Es setzt direkt auf der Docker-API auf, ohne die zusätzliche Komplexität eines Orchestrators.
Die Vorteile von Portainer auf einen Blick:
- 100 % Open Source (Zlib-Lizenz), keine versteckten Kosten in der Community Edition
- Multi-Host-Support via Portainer Agent: Verwalte mehrere VPS und Raspberries zentral
- Umfangreiches RBAC: Erstelle Teams, Benutzer und weise diesen bestimmte Umgebungen zu
- Integrierte Terminal-Sitzung in jeden Container – kein SSH nötig
- Template-System: Starte gängige Container (Nginx, MySQL, Redis, WordPress) per Klick
- Aktive Community, regelmäßige Updates und eine große Zahl an Integrationen
Voraussetzungen: Was du für Portainer brauchst
Bevor wir mit der Installation beginnen, prüfe folgende Voraussetzungen. Du benötigst einen Linux-Server (empfohlen Ubuntu 24.04 LTS, Debian 12 oder Rocky Linux 9) mit installiertem Docker. Empfehlenswert ist ein VPS mit mindestens 1 GB RAM und 10 GB SSD – selbst ein Raspberry Pi 4/5 mit 4 GB RAM reicht für Portainer plus ein Dutzend Container bequem aus. Wenn du noch keinen VPS hast, sind Hetzner Cloud (ab 3,99 Euro/Monat) und Netcup (ab 2,95 Euro/Monat) hervorragende Anbieter für Deutschland.
Docker selbst installierst du am schnellsten mit dem offiziellen Skript:
curl -fsSL https://get.docker.com | sh
Anschließend startest und aktivierst du den Docker-Dienst:
sudo systemctl enable --now docker
Und fügst deinen Benutzer zur Docker-Gruppe hinzu, um rootless arbeiten zu können:
sudo usermod -aG docker $USER
Nach einem erneuten Login (oder newgrp docker) kannst du docker ps ohne sudo ausführen. Nun ist dein System bereit für Portainer.
Portainer Server installieren – Schritt für Schritt
1. Docker-Volume anlegen
Portainer benötigt ein persistentes Volume für seine Datenbank- und Konfigurationsdateien. Erstelle es mit:
docker volume create portainer_data
Alternativ kannst du auch ein lokales Verzeichnis mounten – das Volume ist aber die Docker-konforme und portablere Methode.
2. Container starten
Der offizielle Portainer-Container startet mit folgendem Befehl:
docker run -d \ --name portainer \ --restart unless-stopped \ -p 9000:9000 \ -p 9443:9443 \ -v /var/run/docker.sock:/var/run/docker.sock \ -v portainer_data:/data \ portainer/portainer-ce:latest
Was passiert hier? Der Port 9000 dient für das unverschlüsselte HTTP-Webinterface, Port 9443 für die HTTPS-Verbindung (Portainer erzeugt selbstsignierte Zertifikate). Der Docker-Socket wird gebunden, damit Portainer die lokale Docker-Engine ansprechen kann – das ist der Schlüssel für die gesamte Container-Verwaltung. Das Volume portainer_data speichert die SQLite-Datenbank, in der alle Konfigurationen, Benutzer und Umgebungen abgelegt werden.
3. Ersteinrichtung
Öffne nun http://DEIN-SERVER:9000 oder https://DEIN-SERVER:9443 im Browser. Portainer begrüßt dich mit einem Einrichtungsassistenten. Du legst ein Admin-Passwort fest (mindestens 12 Zeichen empfohlen) und wählst deine lokale Docker-Umgebung aus – standardmäßig wird die über den Socket verbundene Engine angezeigt. Klicke auf „Connect" und schon landest du im Dashboard.
Herzlichen Glückwunsch! Portainer läuft. Du siehst auf einen Blick, wie viele Container, Images, Volumes und Netzwerke existieren, welche Ressourcen (CPU, RAM, Festplatte) verbraucht werden und ob alle Dienste im Status „Running" sind.
Das Dashboard erklärt: Container, Stacks, Volumes & Networks
Nach der Anmeldung erwartet dich das Portainer-Dashboard mit fünf Hauptbereichen in der linken Navigationsleiste:
Dashboard: Die Startseite mit einer Zusammenfassung aller Docker-Objekte – Container (Running, Stopped), Images, Volumes, Networks, Stacks. Hier siehst du auch die Auslastung des Docker-Hosts.
Container: Die Container-Ansicht listet alle Container mit Status, Ports, Image-Namen und Startzeit. Per Klick auf einen Container öffnest du Detail-Ansichten: Logs (inklusive Live-Streaming), Console (interaktives Terminal), Inspect (JSON-Konfiguration), Stats (CPU/RAM/Netzwerk-Live-Graphen) und die Möglichkeit, Container zu starten, stoppen, neuzustarten, zu pausieren oder zu löschen.
Stacks: Hier verwaltest du docker-compose.yml-Dateien. Du kannst neue Stacks aus einer Compose-Datei anlegen, bearbeiten und deployen. Portainer zeigt den aktuellen Status jedes Stacks an – ideal für Multi-Service-Anwendungen wie WordPress mit MySQL und Nginx.
Images: Liste aller heruntergeladenen Docker-Images. Du kannst Images pullen (z. B. nginx:alpine), löschen, exportieren oder neue Container daraus erzeugen. Portainer zeigt auch Image-Layer und deren Größe an.
Volumes: Persistente Datenspeicher für Container. Hier siehst du alle Volumes, ihre Größe, den Mount-Pfad und welcher Container sie verwendet. Anlegen, Löschen und Bereinigen ungenutzter Volumes sind ebenso möglich wie die Migration auf andere Hosts.
Networks: Docker-Netzwerke (Bridge, Host, Overlay, Macvlan) verwalten. Du kannst neue Netzwerke anlegen, bestehende bearbeiten und Container in andere Netzwerke verschieben – nützlich für Microservices, die über ein gemeinsames Bridge-Netzwerk kommunizieren.
Daneben gibt es unter „Settings" die Möglichkeit, Portainer selbst zu konfigurieren: Standard-Logo, Theme-Einstellungen, SSL-Zertifikatsverwaltung und die Konfiguration der Authentifizierung gehören zu den wichtigsten Optionen.
Portainer mit SSL und eigener Domain absichern (Traefik)
Der direkte Zugriff über Port 9000 oder 9443 ist für den produktiven Einsatz nicht empfehlenswert. Besser platzierst du Portainer hinter einem Reverse Proxy mit gültigem Let's-Encrypt-Zertifikat. Traefik ist dafür die optimale Wahl, da es sich vollautomatisch um die ACME-Zertifikate kümmert und per Docker Labels konfiguriert werden kann.
Zuerst erstellst du ein Docker-Netzwerk für Traefik:
docker network create traefik_network
Dann startest du einen Traefik-Container mit folgender docker-compose.yml:
version: "3.8"
services:
traefik:
image: traefik:v3.1
container_name: traefik
restart: unless-stopped
command:
- "--providers.docker=true"
- "--entrypoints.websecure.address=:443"
- "--certificatesresolvers.letsencrypt.acme.tlschallenge=true"
- "[email protected]"
- "--certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json"
ports:
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- traefik_data:/letsencrypt
networks:
- traefik_network
volumes:
traefik_data:
networks:
traefik_network:
external: true
Anschließend stoppst du den bestehenden Portainer-Container und startest ihn neu mit den Traefik-Labels. Füge folgende Labels zur Portainer-Konfiguration hinzu:
labels: - "traefik.enable=true" - "traefik.http.routers.portainer.rule=Host(`portainer.deinedomain.de`)" - "traefik.http.routers.portainer.entrypoints=websecure" - "traefik.http.routers.portainer.tls.certresolver=letsencrypt" - "traefik.http.services.portainer.loadbalancer.server.port=9000"
Wichtig: Entferne die Port-Mappings 9000:9000 und 9443:9443 aus dem Container, da Traefik den Traffic nun intern über das Docker-Netzwerk weiterleitet. Portainer ist dann ausschließlich über https://portainer.deinedomain.de erreichbar, mit vollständigem, gültigem Let's-Encrypt-Zertifikat.
User-Management und Teams in Portainer
Portainer bringt ein ausgefeiltes Benutzer- und Rechtesystem mit, das sich besonders in Team-Umgebungen auszahlt. Navigiere zu „Settings → Authentication" und aktiviere „Internal Authentication". Lege anschließend unter „Users" neue Benutzer an. Du kannst diese Benutzern bestimmte Rollen zuweisen:
Administrator: Vollzugriff auf alle Umgebungen, Benutzer, Einstellungen und Container.
Operator: Darf Container, Images, Volumes und Stacks verwalten, aber keine Benutzer oder Umgebungen anlegen.
Helpdesk: Darf Container starten, stoppen und Logs einsehen, aber keine Images pullen oder Volumes löschen.
Read-Only User: Darf nur zuschauen – ideal für externe Auditoren oder Stakeholder, die einen Überblick über den Systemstatus benötigen.
Zusätzlich lassen sich Teams anlegen und Umgebungen zuweisen. So kann das DevOps-Team Zugriff auf die Produktionsumgebung haben, während das Entwicklerteam nur die Staging-Umgebung sieht. Das ist besonders wertvoll, wenn du Portainer mit mehreren VPS- oder Raspberry-Pi-Hosts über den Portainer Agent betreibst.
Backup der Portainer-Daten – so sicherst du alles
Portainer speichert seine gesamte Konfiguration, Benutzerdatenbank, Umgebungs-Einstellungen und Stack-Definitionen in einem SQLite-Datenspeicher unter /data/portainer.db. Ein regelmäßiges Backup dieses Volumes ist daher essenziell. Die einfachste Methode: Exportiere das Volume regelmäßig per Cronjob.
#!/bin/bash # Portainer Backup Script BACKUP_DIR="/backup/portainer" mkdir -p "$BACKUP_DIR" docker run --rm \ -v portainer_data:/data \ -v "$BACKUP_DIR":/backup \ alpine tar -czf /backup/portainer-$(date +%F).tar.gz -C /data .
Diesen Cronjob (z. B. täglich um 3 Uhr nachts) richtest du mit crontab -e ein:
0 3 * * * /usr/local/bin/backup-portainer.sh
Für die Wiederherstellung stoppst du den Portainer-Container, löscht das alte Volume, erstellst es neu und extrahierst das Backup:
docker stop portainer docker volume rm portainer_data docker volume create portainer_data docker run --rm \ -v portainer_data:/data \ -v /backup/portainer:/backup \ alpine tar -xzf /backup/portainer-2026-06-06.tar.gz -C /data docker start portainer
Für eine noch robustere Strategie empfehlen wir, die Backups per rsync oder rclone auf einen zweiten Server oder in die Cloud (Backblaze B2, Hetzner Storage Box) zu spiegeln. Portainer selbst ist nach der Wiederherstellung sofort funktionsfähig – alle Container, Stacks und Umgebungen werden beim nächsten Verbindungsaufbau neu synchronisiert.
Portainer auf mehreren VPS und Raspberry Pis (Portainer Agent)
Ein besonderes Highlight ist der Portainer Agent. Dieses schlanke Docker-Image (ca. 30 MB) wird auf jedem weiteren Docker-Host installiert und verbindet sich mit dem zentralen Portainer Server. So kannst du von einem zentralen Dashboard aus zehn oder mehr VPS, Heimserver und Raspberry Pis verwalten.
Installation des Agents auf einem zweiten Host:
docker run -d \ --name portainer_agent \ --restart unless-stopped \ -v /var/run/docker.sock:/var/run/docker.sock \ -v /var/lib/docker/volumes:/var/lib/docker/volumes \ portainer/agent:latest
Anschließend wechselst du im Portainer Server auf „Endpoints → Add Endpoint → Agent" und gibst die IP-Adresse des Agent-Hosts sowie den Port 9001 ein. Nach einem Klick auf „Add" erscheint der entfernte Host als eigene Umgebung im Dashboard. Du kannst dessen Container, Images, Volumes und Stacks genauso verwalten wie auf dem lokalen System – völlig transparent.
Dieses Setup ist ideal, wenn du einen zentralen VPS (z. B. bei Hetzner für 4 Euro/Monat) als Management-Knoten betreibst und günstige Raspberry Pis im Heimnetz für Entwicklungs- oder Testumgebungen nutzt. Der Agent verschlüsselt die Kommunikation standardmäßig über TLS, sodass auch Verbindungen über das Internet sicher sind.
Portainer-Templates: Schnellstarter für Nginx, MySQL, WordPress & Co.
Portainer bringt eine umfangreiche App-Template-Sammlung mit, die du unter „App Templates" findest. Hier kannst du mit einem Klick vorkonfigurierte Container starten – darunter Nginx, Apache, MySQL, MariaDB, PostgreSQL, Redis, MongoDB, Node.js, Python, WordPress, Nextcloud, Pi-hole und viele mehr. Du wählst ein Template aus, passt ggf. Ports, Volumes und Umgebungsvariablen an – und Portainer erledigt den Rest.
Die Templates sind YAML-Dateien, die du auch selbst erweitern kannst. Lege eine eigene template.json an und binde sie unter „Settings → App Templates → External Template URL" ein. So kannst du interne Anwendungen als Template bereitstellen, die dein Team mit einem Klick deployen kann – das beschleunigt Onboarding und Standardisierung enorm.
Vergleich mit Alternativen: Dockge, Yacht, Kubernetes Dashboard
Um die Entscheidung zu erleichtern, fassen wir die Unterschiede zusammen:
Portainer: Vollwertiges Docker-Management-Panel mit Multi-Host-Support, RBAC, Template-System, Stack-Verwaltung und integrierter Console. Ideal für Einsteiger und Profis. Ressourcenbedarf: ca. 150–250 MB RAM.
Dockge: Schlanker Stack-Editor mit Fokus auf docker-compose-Dateien. Schöner Editor, aber kein Multi-Host, kein RBAC, kein Image-Management. Eher für Bastler geeignet.
Yacht: Minimalistische Docker-UI mit App-Templates. Moderner Look, aber kleinere Community und weniger Features. Geeignet für einfache Heimserver-Setups.
Kubernetes Dashboard / Lens: Volle Kubernetes-Integration – Pods, Deployments, Services, ConfigMaps, Secrets. Für Docker-Only-Setups aber überdimensioniert und unnötig komplex.
Für die allermeisten Self-Hoster, kleinen bis mittleren Unternehmen und DevOps-Enthusiasten ist Portainer 2026 die klar beste Wahl. Die Kombination aus Feature-Reichtum, Einfachheit und aktiver Community macht das Tool unschlagbar.
Best Practices für den produktiven Betrieb
Damit dein Portainer-Setup dauerhaft stabil und sicher bleibt, beachte folgende Empfehlungen:
- Setze Portainer immer hinter einem Reverse Proxy mit gültigem SSL-Zertifikat ein. Niemals direkt per HTTP im Internet zugänglich machen.
- Aktiviere 2FA für alle Admin-Accounts unter „Settings → Authentication → Two-Factor Authentication". TOTP-kompatibel mit Google Authenticator, Authy oder Bitwarden.
- Lege für jedes Team eigene User mit minimal nötigen Berechtigungen an (Principle of Least Privilege). Verwende die Read-Only-Rolle für externe Dienstleister.
- Sichere das Portainer-Volume regelmäßig per Cronjob – am besten mit einem Offsite-Backup auf einen zweiten Server oder in eine Storage Box.
- Halte Portainer aktuell. Das offizielle Docker-Image wird wöchentlich aktualisiert. Ein
docker compose pull && docker compose up -dreicht für das Update. Mit Watchtower automatisierst du diesen Vorgang. - Nutze Docker-Netzwerke zur Isolation: Frontend-Container (Nginx) in einem, Backend-Dienste (PHP, Node) in einem zweiten und die Datenbank in einem dritten Netzwerk. So reduzierst du die Angriffsfläche.
- Überwache Portainer selbst: Binde die Health-Endpoints in dein bestehendes Monitoring-System ein (z. B. Uptime Kuma oder Prometheus + Grafana).
- Dokumentiere deine Stack-Definitionen in Git – idealerweise in Kombination mit GitHub Actions oder GitLab CI, um Changes nachvollziehen zu können.
Portainer und Raspberry Pi – Das perfekte Duo fürs Heimnetz
Ein Raspberry Pi 5 mit 8 GB RAM ist die ideale Plattform für Portainer im Heimnetz. Der Stromverbrauch liegt bei unter 10 Watt, die Lautstärke bei null und die Leistung reicht locker für 10–20 Container aus. Ein typisches Heim-Setup könnte so aussehen: Pi-Hole (DNS-Werbeblocker), Home Assistant (Smart Home), Jellyfin (Medienserver), Node-RED (Automatisierung), Mosquitto (MQTT-Broker) und Portainer als zentrale Verwaltungsoberfläche.
Installiere Raspberry Pi OS Lite (64 Bit), Docker und Portainer genau wie auf dem VPS. Wer den Pi über eine unterbrechungsfreie Stromversorgung (USV) absichert, hat ein ausfallsicheres Heim-Rechenzentrum, das Wartungsarbeiten und Container-Neustarts komplett von der Couch aus erledigt. Ein empfehlenswertes Zubehör-Paket findest du in der Affiliate-Box am Ende dieses Artikels.
Fazit: Portainer ist 2026 der Standard für Docker-Management
Portainer hat sich in den letzten Jahren als De-facto-Standard für die grafische Verwaltung von Docker-Umgebungen etabliert – und das zu Recht. Die Installation auf einem VPS dauert keine fünf Minuten, das Dashboard ist intuitiv und die Funktionsvielfalt sucht ihresgleichen. Von der einfachen Container-Ansicht über Stack-Management und Multi-Host-Administration bis hin zu rollenbasierten Zugriffsrechten deckt Portainer nahezu jeden Anwendungsfall ab.
Wer 2026 Docker auf einem VPS betreibt und nicht ausschließlich in der Kommandozeile arbeiten möchte, kommt an Portainer nicht vorbei. Die Kombination aus einem günstigen VPS bei Hetzner oder Netcup, Docker als Container-Laufzeit und Portainer als Management-UI ist eine der effizientesten und kostengünstigsten Infrastruktur-Lösungen, die du dir aufbauen kannst. Und das Beste: Alle drei Komponenten sind Open Source und vollständig unter deiner Kontrolle.
Mehr zum Thema findest du in unseren Artikeln über Docker Compose auf dem VPS und Traefik Reverse Proxy einrichten. Für einen tieferen Einblick in die Absicherung deines Servers empfehlen wir unseren VPS-Sicherheitsguide.