Docker & Portainer

KAPITEL 08 · CLOUD & INFRASTRUKTUR

Docker & Portainer

Container-Management mit grafischer Oberfläche – Portainer macht Docker einfach. Verwalten Sie Container, Images, Volumes und Networks über eine intuitive Web-GUI statt über die Kommandozeile.

Web-GUI Stacks Templates Multi-User

Inhaltsverzeichnis

Schnellübersicht

Auf dieser Seite lernen Sie alles über Docker & Portainer:

  • Was ist Portainer? Definition und Vorteile
  • Installation: Portainer CE mit Docker-Compose
  • Features: GUI, Templates, Stacks, User-Management
  • Editionen: Community Edition vs. Business Edition
  • Use Cases: Wann ist Portainer sinnvoll?
  • Best Practices: Sicherheit, Backup, Monitoring
  • FAQ: Häufige Fragen und Antworten

1. Was ist Portainer?

Definition

Portainer ist eine leichtgewichtige, webbasierte Management-Oberfläche für Docker, Docker Swarm, Kubernetes und Azure ACI. Es ermöglicht die Verwaltung von Containern, Images, Volumes, Networks und mehr über eine intuitive grafische Oberfläche – ohne Kommandozeile.

Im Enterprise-Umfeld ist Portainer besonders wertvoll für: Teams mit unterschiedlichen Docker-Kenntnissen, schnelle Bereitstellung von Anwendungen über Templates, zentrale Verwaltung mehrerer Docker-Hosts und einfache Dokumentation von Container-Konfigurationen.

Die drei Hauptvorteile von Portainer: Visuelle Verwaltung (keine CLI-Kenntnisse nötig), Zeitersparnis (schnelle Deployment über Templates) und Zugriffskontrolle (Multi-User mit Rollen).

Portainer vs. Docker CLI

Die Docker CLI ist mächtig und flexibel, erfordert aber Kommandozeilen-Kenntnisse. Portainer bietet eine visuelle Alternative, die besonders für Einsteiger, Dokumentation und Team-Zusammenarbeit vorteilhaft ist. In der Praxis nutzen viele Teams beides: Portainer für die tägliche Verwaltung und die CLI für automatisierte Skripte.

2. Die wichtigsten Features

Portainer bietet eine Vielzahl von Funktionen, die die Docker-Verwaltung deutlich vereinfachen.

Web-GUI

Intuitive grafische Oberfläche für alle Docker-Operationen – im Browser, ohne Installation.

  • Container starten/stoppen/neustarten
  • Images pullen und verwalten
  • Volumes und Networks erstellen
  • Live-Logs ansehen

App Templates

Vorgefertigte Templates für beliebte Anwendungen – Deployment mit einem Klick.

  • WordPress, Nextcloud, GitLab
  • Datenbanken (MySQL, PostgreSQL)
  • Monitoring (Grafana, Prometheus)
  • Custom Templates erstellen

Stacks (Docker Compose)

Docker Compose Dateien direkt in der GUI deployen und verwalten.

  • YAML-Editor mit Syntax-Highlighting
  • Stack-Updates ohne Downtime
  • Umgebungsvariablen verwalten
  • Git-Integration (Business Edition)

User-Management

Multi-User-System mit Rollen und Berechtigungen für Team-Umgebungen.

  • Benutzer und Teams anlegen
  • Rollen (Admin, User, Read-Only)
  • Zugriff auf spezifische Ressourcen
  • LDAP/AD-Integration (Business)

Monitoring & Logs

Echtzeit-Überwachung von Container-Ressourcen und Logs.

  • CPU, RAM, Netzwerk-Statistiken
  • Live-Logs mit Filter
  • Container-Events
  • Resource Limits setzen

Multi-Environment

Verwaltung mehrerer Docker-Hosts und Umgebungen von einer zentralen Oberfläche.

  • Docker Standalone, Swarm, Kubernetes
  • Edge-Agent für remote Hosts
  • Umgebungs-Tags und -Gruppen
  • Zentrale Konfiguration

2. Installation

Portainer wird selbst als Docker-Container installiert. Drei Schritte reichen aus:

Portainer CE in 3 Schritten

1
Volume erstellen

Persistenter Speicher für Portainer-Daten (Datenbank, Einstellungen):

docker volume create portainer_data
2
Portainer Container starten

Container mit Volume-Mount und Docker-Socket-Bindung:

docker run -d \
  --name portainer \
  --restart=always \
  -p 8000:8000 \
  -p 9443:9443 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v portainer_data:/data \
  portainer/portainer-ce:latest
3
Web-UI aufrufen

Browser öffnen und Admin-Passwort festlegen:

https://localhost:9443

Beim ersten Start wirst du aufgefordert, ein Admin-Passwort (mind. 12 Zeichen) zu setzen.

Sicherheitshinweise

  • Docker-Socket: Portainer hat durch die Socket-Bindung vollen Zugriff auf Docker. Schütze den Zugang!
  • HTTPS: Portainer nutzt standardmäßig HTTPS (Port 9443) mit selbstsigniertem Zertifikat
  • Reverse Proxy: In Production einen Reverse Proxy (Nginx, Traefik) mit echtem TLS-Zertifikat vorschalten
  • Authentifizierung: Starke Passwörter verwenden, optional LDAP/OAuth anbinden (BE)

3. Was sind Docker Stacks?

Ein Stack ist eine Gruppe von Containern, die zusammen eine Anwendung bilden. Definiert wird ein Stack über eine docker-compose.yml-Datei.

Stack vs. einzelner Container

  • Einzelner Container: docker run nginx – ein isolierter Dienst
  • Stack: Mehrere Container (Web + DB + Cache) als Einheit deployen, updaten und entfernen
  • Vorteil: Reproduzierbar, versionierbar, teamfähig

Warum Ressourcen-Limits?

  • CPU-Limits: Verhindern, dass ein Container die gesamte CPU belegt
  • RAM-Limits: Schützen vor Memory-Leaks und OOM-Kills
  • Reservierungen: Garantierte Mindestressourcen für kritische Services
  • Stabilität: Ein Service kann andere nicht "hungern" lassen
  • Multi-Tenancy: Fair Sharing auf Shared Hosts

4. Interaktiver Stack Builder

Docker Compose Stack Builder

Erstelle professionelle Docker-Compose-Stacks mit CPU/RAM-Limits, Healthchecks, Volumes, Environment-Variablen und allen wichtigen Einstellungen. Füge mehrere Services hinzu und lade den fertigen YAML-Code herunter.

Schnellstart: Template laden

Services

Generiertes YAML

# Klicke auf ein Template oder füge einen Service hinzu

4. Community Edition vs. Business Edition

Portainer gibt es in zwei Editionen mit unterschiedlichem Funktionsumfang.

Community Edition (CE)

Kostenlos & Open Source
  • Vollständige Docker-Verwaltung
  • Web-GUI für alle Operationen
  • App Templates
  • Docker Compose Stacks
  • Basis User-Management
  • Community Support
Preis: Kostenlos (Open Source)

Business Edition (BE)

Enterprise-Features
  • Alle CE-Features
  • LDAP/AD-Integration
  • Git-Integration für Stacks
  • Erweiterte RBAC (Rollen)
  • Registry Management
  • Priority Support
Preis: Ab $9 USD/User/Monat (5 User minimum)
Feature Community Edition Business Edition
Docker-Verwaltung
Web-GUI
App Templates
Docker Compose Stacks
Basis User-Management
LDAP/AD-Integration
Git-Integration
Erweiterte RBAC
Registry Management
Priority Support

5. Use Cases – Wann ist Portainer sinnvoll?

Portainer ist besonders in folgenden Szenarien wertvoll:

Entwicklungsteams

Entwickler ohne tiefe Docker-Kenntnisse können Container schnell starten und verwalten. Ideal für lokale Entwicklungsumgebungen.

Empfohlen für: Dev-Teams

Produktionsumgebungen

Zentrale Verwaltung mehrerer Docker-Hosts, schnelle Updates über Stacks und einfaches Rollback bei Problemen.

Empfohlen für: Ops-Teams

Schulung & Training

Visuelle Darstellung von Container-Strukturen hilft beim Lernen. Teilnehmer können Docker-Konzepte leichter verstehen.

Empfohlen für: Trainer

Home-Lab & Self-Hosting

Einfache Verwaltung von Nextcloud, Pi-hole, Home Assistant und anderen Self-Hosted-Diensten ohne CLI-Kenntnisse.

Empfohlen für: Hobby-Admins

Portainer in der Praxis

Viele Unternehmen nutzen Portainer als "Docker-Desktop für Server": Entwickler und Ops-Teams können über eine gemeinsame Oberfläche Container verwalten, ohne dass jeder tiefgehende CLI-Kenntnisse haben muss. Besonders in agilen Teams mit wechselnden Mitgliedern ist die visuelle Oberfläche ein großer Produktivitätsgewinn.

6. Enterprise Best Practices

Sicherheit

  • Nur HTTPS (Port 9443) verwenden
  • Starke Passwörter für Admin-Accounts
  • Zugriff auf vertrauenswürdige IPs beschränken
  • Docker Socket nur wenn nötig mounten
  • Regelmäßige Sicherheitsupdates

Backup & Recovery

  • Volume portainer_data regelmäßig sichern
  • Stack-Konfigurationen in Git versionieren
  • Export-Funktion für Einstellungen nutzen
  • Recovery-Prozess dokumentieren und testen

Monitoring

  • Portainer-Logs in zentrales Logging einspeisen
  • Container-Health-Checks konfigurieren
  • Resource Limits für alle Container setzen
  • Alerting bei ungewöhnlichen Mustern

Updates & Wartung

  • Regelmäßig auf neue Portainer-Versionen prüfen
  • Updates in Test-Umgebung zuerst testen
  • Backup vor jedem Update erstellen
  • Changelog lesen für Breaking Changes

Docker Socket Sicherheit

Das Mounten von /var/run/docker.sock gibt Portainer vollen Zugriff auf den Docker-Daemon. In Produktion sollten Sie:

  • Nur vertrauenswürdigen Benutzern Zugriff geben
  • Portainer in einem separaten Netzwerk isolieren
  • Alternativ: Portainer Agent für remote Hosts nutzen (weniger Privilegien)
  • Regelmäßige Audits der Portainer-Berechtigungen durchführen

7. FAQ – Häufige Fragen & Antworten

Häufige Fragen zu Docker & Portainer

Ist Portainer sicher für den Produktionseinsatz?

Ja, mit den richtigen Sicherheitsmaßnahmen. Portainer selbst ist sicher, aber:

  • Verwenden Sie immer HTTPS (Port 9443)
  • Beschränken Sie den Zugriff auf vertrauenswürdige IPs
  • Nutzen Sie starke Passwörter und 2FA (Business Edition)
  • Mounten Sie den Docker Socket nur wenn nötig
  • Halten Sie Portainer aktuell (regelmäßige Updates)

Für hochsensible Umgebungen empfiehlt sich die Business Edition mit LDAP/AD-Integration und erweiterten Zugriffskontrollen.

Kann ich Portainer ohne Docker Socket mounten nutzen?

Ja, mit dem Portainer Agent. Statt den Docker Socket direkt zu mounten, können Sie den Portainer Agent auf jedem Host installieren. Der Agent kommuniziert mit dem lokalen Docker-Daemon und bietet eine sicherere Alternative:

  • Weniger Privilegien als direkter Socket-Zugriff
  • Verwaltung von remote Hosts möglich
  • Bessere Isolation und Sicherheit
  • Ideal für Multi-Host-Umgebungen

Der Agent ist besonders für Produktionseinsatz und verteilte Umgebungen empfohlen.

Was ist der Unterschied zwischen Stacks und Containern in Portainer?

Container: Einzelne Docker-Container, die Sie über die GUI erstellen und verwalten. Gut für einfache, alleinstehende Dienste.

Stacks: Docker Compose Definitionen, die mehrere Container als eine Einheit verwalten. Ideal für:

  • Anwendungen mit mehreren Komponenten (z.B. WordPress + MySQL)
  • Reproduzierbare Deployments
  • Versionierung in Git (Business Edition)
  • Komplexe Netzwerk- und Volume-Konfigurationen

Empfehlung: Nutzen Sie Stacks für alle produktiven Anwendungen und Container nur für schnelle Tests.

Wie sichere ich meine Portainer-Konfiguration?

Die Portainer-Konfiguration wird im Volume portainer_data gespeichert. So sichern Sie es:

BASH # Volume exportieren docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine tar czf /backup/portainer-backup-$(date +%Y%m%d).tar.gz /data # Volume importieren (Wiederherstellung) docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine tar xzf /backup/portainer-backup-YYYYMMDD.tar.gz -C /

Automatisierung: Erstellen Sie ein Cron-Job für tägliche Backups und speichern Sie die Backups extern (z.B. S3, NAS).

Kann ich Portainer mit Kubernetes nutzen?

Ja! Portainer unterstützt neben Docker auch:

  • Kubernetes: Verwaltung von Pods, Deployments, Services
  • Docker Swarm: Native Swarm-Unterstützung
  • Azure ACI: Azure Container Instances
  • Nomad: HashiCorp Nomad (experimentell)

Sie können mehrere Umgebungen (Docker, Swarm, Kubernetes) von einer zentralen Portainer-Instanz aus verwalten. Die Business Edition bietet erweiterte Kubernetes-Features wie RBAC-Integration.

Wie aktualisiere ich Portainer auf eine neue Version?

So aktualisieren Sie Portainer sicher:

  1. Backup erstellen: Volume portainer_data sichern
  2. Changelog lesen: Auf Breaking Changes prüfen
  3. Container stoppen: docker-compose down
  4. Image pullen: docker-compose pull
  5. Container starten: docker-compose up -d

Tipp: Testen Sie Updates zuerst in einer Test-Umgebung, bevor Sie sie in Produktion ausrollen.

Was sind App Templates und wie nutze ich sie?

App Templates sind vorgefertigte Docker-Compose-Konfigurationen für beliebte Anwendungen. Sie ermöglichen Deployment mit wenigen Klicks:

  • Vorgefertigte Templates: WordPress, Nextcloud, GitLab, MySQL, PostgreSQL, Grafana, Prometheus, etc.
  • Custom Templates: Eigene Templates erstellen und im Team teilen
  • Template-Repository: Community-Templates von GitHub importieren

So nutzen Sie Templates:

  1. Gehen Sie zu App Templates in der Sidebar
  2. Wählen Sie eine Anwendung (z.B. WordPress)
  3. Konfigurieren Sie Umgebungsvariablen (Passwörter, Domains)
  4. Klicken Sie auf Deploy the container

Templates sind ideal für schnelle Deployments und Standard-Konfigurationen im Team.

Wie verwalte ich mehrere Docker-Hosts mit Portainer?

Portainer bietet mehrere Möglichkeiten zur Multi-Host-Verwaltung:

  • Portainer Agent: Auf jedem Host installieren, zentrale Verwaltung
  • Edge Agent: Für remote Hosts ohne direkte Verbindung
  • Environments: Hosts in Gruppen organisieren (Dev, Staging, Prod)
  • Tags: Hosts mit Labels versehen für Filterung

Empfehlung für Enterprise: Nutzen Sie den Portainer Agent auf allen Hosts und organisieren Sie diese in Environments. Die Business Edition bietet Git-Integration für Stack-Deployments über alle Hosts hinweg.

Zusammenfassung

Die wichtigsten Punkte

  • Portainer: Web-GUI für Docker, Swarm, Kubernetes – keine CLI-Kenntnisse nötig
  • Features: Container-Verwaltung, App Templates, Stacks, User-Management, Monitoring
  • Installation: Als Docker-Container mit Docker-Compose, wenige Minuten Aufwand
  • Editionen: CE (kostenlos, Open Source) und BE (Enterprise-Features, kostenpflichtig)
  • Use Cases: Dev-Teams, Produktion, Schulung, Home-Lab, Self-Hosting
  • Sicherheit: HTTPS, starke Passwörter, Zugriffskontrolle, regelmäßige Updates
  • Best Practice: Stacks für produktive Apps, Volume-Backups, Monitoring

Nächste Schritte

Portainer ist ein hervorragendes Tool für die Docker-Verwaltung, besonders in Teams mit unterschiedlichen Kenntnissen. Starten Sie mit der Community Edition, erkunden Sie die App Templates und nutzen Sie Stacks für reproduzierbare Deployments. Für Enterprise-Umgebungen mit LDAP/AD und Git-Integration ist die Business Edition empfehlenswert.

Weiter zu Docker Compose

Weiterführende Themen

Docker Container

Docker-Grundlagen: Images, Container, Volumes, Networks und Dockerfile.

Zu Docker Container
Docker Compose

Multi-Container-Orchestrierung mit Docker Compose und YAML-Dateien.

Zu Docker Compose
Container Orchestration

Kubernetes, Docker Swarm und andere Orchestrierungswerkzeuge im Vergleich.

Zu Container Orchestration
Infrastructure as Code

Terraform, Ansible, Pulumi – Infrastruktur als Code verwalten.

Zu Infrastructure as Code