Diese Seite beschreibt die täglichen Operationen und Wartungsaufgaben für dein System.
Ziel ist es, schnell und reproduzierbar:
- Container zu verwalten
- Probleme zu debuggen
- Netzwerke zu prüfen
- Änderungen sicher durchzuführen
Wichtige Bereiche:
- Container-Management
- Logs
- Debugging
- Netzwerk
- Proxy-Operationen
- Daten / Persistenz
- Änderungen passieren fast immer auf Container-Ebene
- Debugging erfolgt primär über Logs + Netzwerkprüfung
- viele Probleme entstehen durch:
- falsche Netzwerke
- falsche Namen
- nicht gestartete Services
¶ Standard-Workflow bei Problemen
- Läuft der Container?
- Ist der Port offen?
- Ist der Container im richtigen Netzwerk?
- Stimmen Containername + Proxy-Config?
- Was sagen die Logs?
docker start <container>
docker stop <container>
docker restart <container>
docker ps
docker ps -a
docker logs <container>
docker logs -f <container>
docker logs --tail=50 <container>
docker inspect <container>
docker network ls
docker network inspect proxy-net
docker network connect proxy-net <container>
docker exec -it proxy-npm-1 getent hosts <container>
docker exec -it proxy-npm-1 sh
nginx -t
nginx -s reload
- Änderungen im NPM-UI triggern normalerweise automatisch einen Reload
- manuelle Änderungen an Config-Dateien sind nicht persistent
# 1. Container läuft?
docker ps | grep <service>
# 2. Logs prüfen
docker logs --tail=50 <service>
# 3. Netzwerk prüfen
docker network inspect proxy-net
# 4. DNS testen
docker exec -it proxy-npm-1 getent hosts <service>
# 5. Port prüfen
ss -tulpen | grep <port>
Ursachen:
- nicht im
proxy-net
- falscher Containername
- falscher Port
Ursachen:
- Zielcontainer down
- Netzwerk fehlt
- falscher Upstream
Ursachen:
- Container nicht neu gestartet
- Browser-Cache
- Proxy nicht neu geladen
docker network connect proxy-net <container>
- SQLite wird im Proxy verwendet (
/data/database.sqlite)
- wurde bereits genutzt, um Proxy-Probleme zu lösen
Wichtig:
- Änderungen sind riskant
- vorher Backup machen
- Container ggf. stoppen
/opt/docker/<service>/ → Compose + Config
/opt/docker/proxy/data → Proxy-Konfiguration
/opt/docker/proxy/letsencrypt → Zertifikate
Wenn etwas "verschwindet":
- zuerst Mount prüfen
- dann Host-Dateien prüfen
- Operationen betreffen oft mehrere Services gleichzeitig
- Proxy-Änderungen wirken global
- Netzwerk-Änderungen können ganze Flows zerstören oder reparieren
- immer zuerst Logs lesen
- nie blind Container neu erstellen
- Netzwerk immer mitdenken
- Container-Namen exakt verwenden
- Änderungen schrittweise durchführen
- manuelle Änderungen in Containern sind nicht persistent
- falsche Netzwerkänderungen brechen Routing komplett
- SQLite-Manipulation kann Proxy zerstören
- Restart-Reihenfolge kann Probleme erzeugen
- Standardisierung von Debug-Prozessen
- Definition eines festen Troubleshooting-Flows
- Monitoring / Alerting fehlt aktuell
- Healthchecks für kritische Services fehlen
- zentrale Logs / Logging-Strategie fehlt
- klaren Debug-Standard definieren
- Logs systematisch nutzen
- Netzwerkzustand prüfbar halten
- Monitoring einführen
- Healthchecks ergänzen
- Restart-Strategien dokumentieren
- zentrales Logging (z. B. Loki / ELK)
- Automatisierung von Checks
- Runbooks für häufige Fehler
Wenn etwas kaputt ist:
Logs → Netzwerk → Container → Proxy → erst dann tiefer graben