Skip to content

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-Verwaltung
  • portainer_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

  1. Portainer öffnen über die URL
  2. Admin-Benutzer erstellen:

  3. Benutzername: admin

  4. Starkes Passwort setzen
  5. Passwort sicher speichern (z.B. in Passwort-Manager)

  6. Umgebung verbinden:

  7. Local Environment automatisch erkannt
  8. Bei Bedarf Remote-Docker-Hosts hinzufügen

Container-Verwaltung

Container überwachen

  1. Dashboard öffnen - Übersicht aller Container
  2. Container-Liste: Status, Ressourcenverbrauch, Logs
  3. Details anzeigen: Klick auf Container-Name
  4. 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

  1. Stacks-Menü öffnen
  2. Stack erstellen:

  3. Name vergeben

  4. docker-compose.yml hochladen oder eingeben
  5. Environment-Variablen setzen

  6. Stack verwalten:

  7. Deploy: Stack starten
  8. Update: Änderungen anwenden
  9. 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/