Ich versuche zu versuchen, die Protokolldateien von Docker-Containern in this site zu speichern, die Ihnen eine Linux-Root-Shell mit installiertem Docker gibt. I'v verwendete Lösung here bereitgestellt:das Speichern von Docker-Protokolldateien mit Volumes erzeugt die Berechtigung verweigert
docker run -ti -v /dev/log:/root/data --name zizimongodb mongo
Dies ist, was ich in der Konsole bekam:
docker: Error response from daemon: oci runtime error: container_linux.go:262: starting container process caused "process_linux.go:339: container init caused \"rootfs_linux.go:57: mounting \\\"/dev/log\\\" to rootfs \\\"/graph/overlay2/7f1eb83902e3688c0a1204c2fe8dfd8fbf43e1093bc578e4c41028e8b03e4b38/merged\\\" at \\\"/graph/overlay2/7f1eb83902e3688c0a1204c2fe8dfd8fbf43e1093bc578e4c41028e8b03e4b38/merged/root/data\\\" caused \\\"permission denied\\\"\"".
Aber der Behälter hat begonnen:
$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8adaa75ba6f7 mongo "docker-entrypoint..." 2 minutes ago Created zizimongodb
docker logs -f zizimongodb
kehrt nichts. Wenn ich den Container stoppe, wird im /root/data
nichts gespeichert. Irgendeine Idee, wie ich alle Protokolle korrekt speichern kann?
Warum verwenden Sie '/ dev/log'? Versuchen Sie es mit '/ var/log/mongodb:/root/data' –
@TarunLalwani, vor allem habe ich viele Komponenten, die ich ihre Protokolle aus ihren Containern erhalten möchten; Ich möchte Docker Logs speichern, um auf alle zugreifen zu können. Zweitens habe ich Ihren Vorschlag ausprobiert, nach dem Anhalten und dem Entfernen des Containers wurde nichts gespeichert. –
Das liegt daran, dass 'mongo' keine Logs an'/root/data' teilt. Wenn Sie den mongodb-Container überprüfen, werden die Protokolle an '/ var/log/mongodb/mongod.log' gesendet. Also warum erwartest du, dass es funktioniert? –