Zap*_*nuk 11 docker dockerfile docker-compose
我想将容器的所有标准输出消息记录到外部驱动器,因为我在“docker”驱动器上的空间有限。
使用 docker-compose v3,我使用“json-file”驱动程序将日志保存在 10 MB 块中
logging:
driver: "json-file"
options:
max-size: 10m
Run Code Online (Sandbox Code Playgroud)
默认情况下,结果日志保存在 /var/lib/docker/containers/<container id>/<container id>-json.log
有什么办法可以改变这个位置吗?
小智 0
我不确定是否有现成的解决方案。
您可以尝试的一件事是对 json 文件日志记录驱动程序设置最低限制,但将所有日志保存在单独的目录中,如下所示:
docker-compose logs -f 2>&1 | multilog t s1048576 n100 ./my_log_directory
Run Code Online (Sandbox Code Playgroud)
您应该在后台运行它来记录所有日志
需要此位将所有 stderr 视为 stdin,以便它将由 multilog 保存:
2>&1
Run Code Online (Sandbox Code Playgroud)
有关多重日志的更多信息,请访问:https://serverfault.com/questions/445118/rotating-logs- generated-by-a-process-that-logs-to-stdin#445461
尽管它可能满足您的需求,但您仍然会丢失 json 文件驱动程序提供的一些信息
| 归档时间: |
|
| 查看次数: |
1786 次 |
| 最近记录: |