[Diese Antwort behandelt aktuelle Docker-Versionen für diejenigen, die lange nach der Beantwortung auf die Frage stoßen.]
Um die Standardprotokollgrenzen für alle neu erstellten Container festzulegen, können Sie in /etc/docker/daemon.json Folgendes hinzufügen:
{
"log-driver": "json-file",
"log-opts": {"max-size": "10m", "max-file": "3"}
}
Laden Sie dann Docker mit neu, systemctl reload dockerwenn Sie systemd verwenden (andernfalls verwenden Sie den entsprechenden Neustartbefehl für Ihre Installation).
Sie können auch mit einer ähnlichen Datei zum lokalen Protokollierungstreiber wechseln:
{
"log-driver": "local",
"log-opts": {"max-size": "10m", "max-file": "3"}
}
Der lokale Protokollierungstreiber speichert den Protokollinhalt in einem internen Format (ich glaube Protobufs), sodass Sie mehr Protokollinhalte in derselben Protokolldatei erhalten (oder weniger Dateibereich für dieselben Protokolle benötigen). Der Nachteil des lokalen Treibers sind externe Tools wie Protokollweiterleitungen, die möglicherweise nicht in der Lage sind, die Rohprotokolle zu analysieren. Werden die bewusst docker logsfunktioniert nur , wenn die Protokolltreiber eingestellt ist json-file, localoder journald.
Das max-sizeist eine Grenze für die Docker Protokolldatei, so enthält es die json oder lokale Protokolloverhead - Formatierung. Und das max-fileist die Anzahl der Protokolldateien, die Docker verwalten wird. Nachdem die Größenbeschränkung für eine Datei erreicht wurde, werden die Protokolle gedreht und die ältesten Protokolle werden gelöscht, wenn Sie sie überschreiten max-file.
Weitere Informationen zu Docker finden Sie unter: https://docs.docker.com/config/containers/logging/configure/
Ich habe auch eine Präsentation zu diesem Thema. Verwenden Sie Pdiese Option , um die Präsentationsnotizen anzuzeigen: https://sudo-bmitch.github.io/presentations/dc2019/tips-and-tricks-of-the-captains.html#logs
--log-driver=none. Wenn Sie Protokolle nur für bestimmte Container deaktivieren möchten, können Sie sie--log-driver=noneimdocker runBefehl starten . Eine andere Möglichkeit könnte darin bestehen, einen externen Speicher zu mounten/var/lib/docker. Wie eine NFS-Freigabe oder etwas, das mehr Speicherkapazität als der betreffende Host hat.