| .. | ||
| cups | ||
| ppd | ||
| README.md | ||
CUPS & Docker: Troubleshooting und Best Practices
Netzwerk & Benutzer
- Firewall öffnen:
sudo ufw allow from 172.30.30.0/24 to any port 631 proto tcp - Benutzer zu lpadmin hinzufügen:
sudo usermod -aG lpadmin <deinbenutzername> - CUPS-Client installieren:
sudo apt install cups-bsd
WSL2: CUPS starten
sudo service cups start
CUPS-Socket Problem
Falls /run/cups/cups.sock ein Verzeichnis ist:
sudo rm -r /run/cups/cups.sock
sudo service cups restart
CUPS-Dienst prüfen
- Läuft cupsd?
ps aux | grep cupsd - Fehler im Log:
tail -n 50 /var/log/cups/error_log - CUPS explizit neu starten und Socket prüfen:
sudo service cups stop sudo service cups start ls -l /var/run/cups/cups.sock ls -ld /var/run/cups
Erkenntnisse & Lösungen aus der Praxis
Problem: Docker-Container verlieren nach einem Neustart des Host-CUPS-Dienstes die Verbindung zum Drucker (Fehler: "Bad file descriptor").
Ursache:
Der CUPS-Dienst wird z.B. durch Logrotate automatisch neu gestartet (siehe /etc/logrotate.d/cups-daemon). Dabei wird der Socket neu erzeugt und bestehende Verbindungen ungültig.
Lösung:
- Entferne oder kommentiere in
/etc/logrotate.d/cups-daemondie Zeile impostrotate-Block:
Dadurch wird CUPS nicht mehr automatisch nachts neu gestartet.# invoke-rc.d --quiet cups restart > /dev/null - Falls ein Neustart nötig ist, Container nach CUPS-Neustart ebenfalls neu starten (manuell oder automatisiert).
- In Anwendungen Fehler wie "Bad file descriptor" abfangen und ggf. den Druckvorgang erneut versuchen.
- Healthcheck im Container einbauen, um Verbindungsprobleme frühzeitig zu erkennen.
Tipp: Portainer und Watchtower können helfen, Container-Status zu überwachen und bei Problemen automatisiert neu zu starten.
Weitere Infos: