Zum Inhalt springen

Znuny Docker – Setup, docker-compose & Befehle (2026)

Mit Docker können Sie Znuny in isolierten Containern betreiben: gleiche Laufzeitumgebung auf jedem Host, klare Trennung von Diensten und einfaches Hoch- und Herunterfahren des Stacks. Für Installation, Upgrade und produktive Architektur ist die offizielle Znuny-Dokumentation maßgeblich; diese Seite fasst übliche Docker-Arbeitsschritte und Befehle zusammen.

Kurz die praktischen Unterschiede:

  • Konfiguration: Statt Pakete direkt auf dem Server liegt vieles in docker-compose.yml, Umgebungsvariablen und Volumes.
  • Persistenz: Datenbank, Dateianhänge und Konfiguration müssen in Volumes oder gebundenen Host-Verzeichnissen liegen — sonst sind sie nach docker compose down oder Container-Erneuerung weg.
  • Updates: Image aktualisieren, danach typischerweise Datenbank-Migration und Cache aus der Doku ausführen — nicht einfach nur „Container neu starten“.
  • Netzwerk/TLS: Reverse Proxy (z. B. Traefik, Nginx) oder eingebundene Ports je nach Ihrem Compose-Setup.

Der genaue Satz an Diensten (Web, Datenbank, Scheduler, Suche) richtet sich nach dem verwendeten Compose-File oder Helm-Chart — nicht jedes Setup listet dieselben Container.

Viele Znuny-Docker-Setups verteilen die Arbeit auf mehrere Dienste. Namen wie znuny_web_1 sind nur ein Beispiel — Docker Compose vergibt Namen nach Projekt- und Servicenamen (oft <projekt>_<service>_1). Vor Befehlen immer mit docker ps prüfen, wie die Container bei Ihnen heißen.

Häufige Rollen:

  1. Web / App: HTTP-Zugang zur Anwendung (z. B. Perl/PSGI hinter einem App-Server oder Apache/Nginx im Container).
  2. Datenbank: z. B. MariaDB oder PostgreSQL — mit persistentem Volume.
  3. Daemon / Scheduler: Hintergrundjobs (E-Mail, Generic-Agent, Eskalationen), je nach Stack ein eigener Container oder Teil des Web-Services.
  4. Cache: z. B. Redis — kann je nach Setup fehlen oder integriert sein.
  5. Volltextsuche: z. B. Elasticsearch oder OpenSearch — nicht in jedem Minimal-Setup vorhanden.
  6. Reverse-Proxy (optional): Nginx oder Traefik für HTTPS und Routing nach außen.

Container isolieren Prozesse und Dateisystem-Sichten, nutzen aber denselben Host-Kernel — sie sind dadurch leichter als vollständige virtuellen Maschinen. Persistente Daten liegen in Volumes oder gemounteten Verzeichnissen; das Container-Dateisystem selbst ist vergänglich.

Unter Linux mit systemd ist Docker üblicherweise ein Systemdienst:

  • Dienst starten: sudo systemctl start docker
  • Autostart aktivieren: sudo systemctl enable docker
  • Dienst stoppen: sudo systemctl stop docker
  • Status prüfen: sudo systemctl status docker

Auf Docker Desktop (Windows/macOS) übernimmt die Anwendung den Daemon — dort entfallen diese systemctl-Befehle.

  • Laufende Container: docker ps
  • Alle Container: docker ps -a
  • Images: docker images
  • Logs eines Containers: docker logs <container-name> (fortlaufend: docker logs -f <container-name>)
  • Einzelnen Container starten/stoppen: docker start <name> / docker stop <name>

Mit Docker Compose (v2, Plugin):

  • Stack im Verzeichnis der Compose-Datei starten: docker compose up -d
  • Stoppen: docker compose down (ohne Volumes zu löschen, sofern nicht --volumes angegeben)

Zuerst den passenden Container ermitteln:

Terminal-Fenster
docker ps

Dann interaktiv eine Shell öffnen (Namen anpassen):

Terminal-Fenster
docker exec -it znuny_web_1 bash

Mit Compose kann es kürzer sein (Servicename aus der docker-compose.yml):

Terminal-Fenster
docker compose exec web bash

Die CLI wird aus dem Znuny-Installationsverzeichnis im Container aufgerufen — oft unter /opt/znuny oder einem ähnlichen Pfad. Im Container nach dem Installationsroot suchen oder das Image-README lesen.

Beispiele:

Terminal-Fenster
bin/znuny.Console.pl --help
bin/znuny.Console.pl Maint::Database::Upgrade
bin/znuny.Console.pl Maint::Cache::Delete

::: details Überblick Kommandozeile (CLI)

Die Kommandozeilenschnittstelle von Znuny basiert auf znuny.Console.pl — damit lassen sich administrative Aufgaben ohne Web-UI erledigen. Typische Einstiegspunkte:

  • Help: Hilfe zu Befehlen.
  • List: verfügbare Befehle auflisten.
  • Search: nach Befehlen suchen.
  • Admin::Config::Update: Konfigurationswert setzen.
  • Admin::Package::Install: Paket installieren.
  • Admin::User::Add: Agent anlegen.
  • Dev::Code::Generate::ConsoleCommand: Gerüst für einen Konsolenbefehl erzeugen.
  • Dev::Tools::CacheBenchmark: Benchmark der Cache-Backends.
  • Maint::Cache::Delete: Znuny-Cache löschen.
  • Maint::Config::Rebuild: SysConfig neu aufbauen.

:::

::: details Pakete und Logs

  • Dev::Package::Build: OPM aus einer SOPM-Quelle bauen.
  • Maint::Log::Clear: Logdaten bereinigen.

Details zu Paketen und zur Konfiguration: offizielle Znuny-Dokumentation.

:::

::: details Migration und Updates

Beim Umstieg von OTRS oder bei Upgrades gelten besondere Reihenfolgen und Backups — siehe die Hersteller-Dokumentation zu Migration und Release Notes.

Beispiele für Konsolenbefehle aus der Znuny-Welt (Verfügbarkeit je nach Version prüfen):

  • Dev::Tools::Migrate::OTRSToZnuny: Unterstützung bei der Aufbereitung von Quellen/Paketen im Znuny-Kontext (siehe Doku).
  • Admin::Package::UpgradeAll: Pakete aus den konfigurierten Repos aktualisieren.

Immer Backup von Datenbank und Dateisystem/Volumes vor größeren Schritten einplanen.

:::

  • Volume anlegen: docker volume create <name>
  • Volumes auflisten: docker volume ls
  • Netzwerke: docker network ls

Für Backups sind die dem Datenbank-Container zugeordneten Volumes sowie alle gemounteten Verzeichnisse mit Znuny-Daten (var, Anhänge, ggf. Konfiguration) relevant — nicht nur ein Datenbank-Dump.

  • Offizielle Dokumentation und Installationspfade: doc.znuny.org.
  • Compose-Projektname und Servicenamen immer aus Ihrer eigenen docker-compose.yml und docker ps ableiten — Copy-Paste von Container-Namen aus Anleitungen schlägt fehl, wenn sich das Projekt unterscheidet.