Portainer - Docker Container Management¶
Portainer ist eine benutzerfreundliche Weboberfläche zur Verwaltung von Docker-Containern und -Swarm-Clustern. Es ermöglicht die einfache Überwachung, Verwaltung und Bereitstellung von Container-Anwendungen.
Architektur¶
Container-Konfiguration¶
portainer:
image: portainer/portainer-ce:latest
ports:
- "${PORTAINER_HTTP_PORT:-9000}:9000"
- "${PORTAINER_HTTPS_PORT:-9443}:9443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- portainer_data:/data
restart: unless-stopped
Daten-Volumes¶
/var/run/docker.sock: Docker Socket für Container-Verwaltungportainer_data: Konfigurationsdaten und Datenbank
Zugriff¶
Webinterface¶
- HTTP:
http://localhost:9000(lokal) - HTTPS:
https://portainer.ihre-domain.de(Produktion) - Anmeldung: Admin-Benutzer aus der Erstinstallation
Ersteinrichtung¶
- Portainer öffnen über die URL
-
Admin-Benutzer erstellen:
-
Benutzername:
admin - Starkes Passwort setzen
-
Passwort sicher speichern (z.B. in Passwort-Manager)
-
Umgebung verbinden:
- Local Environment automatisch erkannt
- Bei Bedarf Remote-Docker-Hosts hinzufügen
Container-Verwaltung¶
Container überwachen¶
- Dashboard öffnen - Übersicht aller Container
- Container-Liste: Status, Ressourcenverbrauch, Logs
- Details anzeigen: Klick auf Container-Name
- Live-Logs: Echtzeit-Logs und Ressourcen-Monitoring
Container-Aktionen¶
Sichere Aktionen:
- Start/Stop: Container starten/beenden
- Restart: Container neustarten
- Logs: Logs anzeigen und filtern
- Exec: Terminal-Zugriff auf laufende Container
Vorsichtige Aktionen:
- Recreate: Container mit neuen Einstellungen neu erstellen
- Duplicate/Edit: Container-Konfiguration ändern
Nicht verwenden
NICHT verwenden: Remove/Delete für Produktions-Container.
Verwenden Sie stattdessen docker compose Befehle für kontrollierte Änderungen.
Stacks und Compose¶
- Stacks-Menü öffnen
-
Stack erstellen:
-
Name vergeben
- docker-compose.yml hochladen oder eingeben
-
Environment-Variablen setzen
-
Stack verwalten:
- Deploy: Stack starten
- Update: Änderungen anwenden
- Remove: Stack entfernen
Monitoring und Diagnose¶
Ressourcen-Überwachung¶
- Container-Ressourcen: CPU, RAM, Netzwerk, I/O
- Host-Ressourcen: Server-Auslastung
- Netzwerk-Statistiken: Traffic und Verbindungen
Logs und Debugging¶
# Container-Logs über Portainer
1. Container auswählen
2. "Logs" Tab öffnen
3. Zeitbereich und Filter setzen
# Terminal-Zugriff
1. Container auswählen
2. "Exec Console" öffnen
3. Befehle ausführen: ls, ps, top, etc.
Health Checks¶
- Container-Status: Running, Stopped, Unhealthy
- Health-Logs: Automatische Status-Überprüfungen
- Restart-Policies: Automatische Wiederherstellung
Sicherheit¶
Best Practices¶
- Admin-Zugang: Starke Passwörter verwenden
- Zwei-Faktor-Authentifizierung: Bei Bedarf aktivieren
- Netzwerk-Sicherheit: Nur vertrauenswürdige IPs zulassen
- Regelmäßige Updates: Portainer auf dem neuesten Stand halten
Benutzer-Verwaltung¶
- Teams: Benutzer in Teams organisieren
- Rollen: Admin, Standard, Read-only
- Zugriffsrechte: Granulare Berechtigungen pro Container/Stack
Backup und Restore¶
Konfiguration sichern¶
# Portainer-Daten sichern
docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine tar czf /backup/portainer_backup.tar.gz -C /data .
Wiederherstellen¶
# Backup wiederherstellen
docker run --rm -v portainer_data:/data -v $(pwd):/backup alpine sh -c "cd /data && tar xzf /backup/portainer_backup.tar.gz"
Fehlerbehebung¶
Häufige Probleme¶
Portainer nicht erreichbar:
- Container-Status:
docker compose ps portainer - Logs:
docker compose logs portainer - Netzwerk-Konfiguration prüfen
Docker Socket Fehler:
- Socket-Berechtigungen:
ls -la /var/run/docker.sock - Portainer als root ausführen oder Berechtigungen anpassen
Container nicht sichtbar:
- Docker Socket korrekt gemountet?
- Portainer-Container neustarten
Debugging¶
# Portainer-Status prüfen
docker compose ps portainer
# Logs analysieren
docker compose logs --tail=100 portainer
# Socket-Zugriff testen
docker exec portainer ls -la /var/run/docker.sock
Integration mit anderen Tools¶
Docker Compose¶
Portainer kann docker-compose Dateien direkt deployen und verwalten:
# Stack über Portainer deployen
version: "3.8"
services:
web:
image: nginx:latest
ports:
- "80:80"
Monitoring-Integration¶
- Prometheus: Metriken sammeln
- Grafana: Dashboards erstellen
- Alertmanager: Benachrichtigungen konfigurieren
Dokumentation
Portainer: https://docs.portainer.io/
Docker: https://docs.docker.com/