Ich habe eine Anwendung, die Benutzercode ausgeführt wird. Ich möchte sicherstellen, dass Docker nicht zu viele Logs sammelt, die ich sowieso verwerfe. Dazu versuche ich max-size
und max-file
Logging-Optionen zu verwenden, um nur die letzten paar Kilobyte der Benutzerausgabe zu erhalten und den Rest zu verwerfen, aber das scheint nicht zu funktionieren.Begrenzung docker Protokollierung
Wenn ich tun:
$ docker run --log-opt max-size=2 --log-opt max-file=1 python:2 python -c "for i in range(10): print i"
0
1
2
3
4
5
6
7
8
9
Dann druckt er immer noch die volle Leistung auf dem Bildschirm. Wenn ich die Protokolle manuell auf dem Host überprüfe, kann ich sehen, dass die Dateien mit der vollen Ausgabe vorhanden sind.
Sollte ich in diesem Fall nicht nur 9\n
bekommen? Was mache ich hier falsch?
Die von Ihnen verwendeten Optionen beziehen sich auf die maximale Dateigröße und die Anzahl der Dateien. Maximale Größe sud be k/m/g. Auch nach der Einstellung können Sie die genaue Anzahl der Zeilen nicht vorhersagen. Es ist von Dateigröße – Shibashis