Lazytainer - Docker-Container automatisch pausieren

Lazytainer

Pausiert Docker-Container automatisch, wenn kein Netzwerkverkehr mehr ankommt – und startet sie bei Bedarf wieder.

Was ist Lazytainer?

Lazytainer ist ein leichtgewichtiger Proxy-Container, der andere Container überwacht und bei Inaktivität in den Schlafmodus versetzt. Sobald neue Verbindungen eingehen, werden die pausierten Container automatisch wieder gestartet. Das spart Ressourcen auf Heimservern und kleinen VPS-Instanzen erheblich, ohne dass Dienste dauerhaft manuell deaktiviert werden müssen. Lazytainer kommuniziert direkt mit dem Docker-Socket und benötigt keine Änderungen an den überwachten Containern.

Voraussetzungen

  • Docker und Docker Compose
  • Zugriff auf den Docker-Socket (/var/run/docker.sock)
  • Dienste müssen über HTTP(S) erreichbar sein (TCP-Proxy-Modus)

Compose-Beispiel

services:
  lazytainer:
    image: ghcr.io/vmorganp/lazytainer:latest
    container_name: lazytainer
    restart: unless-stopped
    ports:
      - "8080:8080"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./config.yml:/app/config.yml:ro
    environment:
      - TZ=Europe/Berlin

Eine Beispiel-Konfigurationsdatei (config.yml) definiert, welche Container bei welchem Port überwacht werden:

groups:
  - name: jellyfin
    inactiveTimeout: 300
    stopTimeout: 10
    services:
      - name: jellyfin
        port: 8096

Hinweise

  • Der inactiveTimeout-Wert gibt an, nach wie vielen Sekunden Inaktivität ein Container pausiert wird – 300 Sekunden (5 Minuten) sind ein guter Standardwert.
  • Der Docker-Socket sollte im Read-only-Modus eingebunden werden (ro), sofern Lazytainer keine Container direkt steuern muss – ansonsten ohne :ro.
  • Ressourcenhungrige Dienste wie Jellyfin, Plex oder Nextcloud profitieren am stärksten von diesem Ansatz.
  • Beim ersten Aufruf nach einer Pause gibt es eine kurze Verzögerung (2–10 Sekunden), während der Ziel-Container hochfährt.