我使用了读取我的Docker容器日志输出
docker logs -f <container_name>
Run Code Online (Sandbox Code Playgroud)
我通过调用将大量数据记录到我的node.js应用程序中的日志中console.log()
.我需要清理日志,因为它太长了,docker logs
命令首先在日志的现有行中运行,然后才能结束.如何清洁它再次缩短?我想看一个像这样的命令:
docker logs clean <container_name>
Run Code Online (Sandbox Code Playgroud)
但它似乎并不存在.
BMi*_*tch 66
首先,如果你只需要看到更少的输出,你可以让docker只显示更新的行:
docker logs --since 30s -f <container_name_or_id>
Run Code Online (Sandbox Code Playgroud)
或者你可以设置一些限制:
docker logs --tail 20 -f <container_name_or_id>
Run Code Online (Sandbox Code Playgroud)
要删除Docker for Linux安装上的日志,可以对单个容器运行以下日志:
echo "" > $(docker inspect --format='{{.LogPath}}' <container_name_or_id>)
Run Code Online (Sandbox Code Playgroud)
请注意,这需要root,我不建议这样做.如果在docker将日志写入同一文件的过程中使文件为空,则可能会损坏日志文件.相反,您应该配置docker来旋转日志.
最后,您可以将docker配置为在/etc/docker/daemon.json
文件中使用以下内容自动旋转日志:
{
"log-driver": "json-file",
"log-opts": {"max-size": "10m", "max-file": "3"}
}
Run Code Online (Sandbox Code Playgroud)
这允许docker每个容器最多保留3个日志文件,每个文件限制为10兆(因此每个容器限制20到30兆的日志).您需要运行a systemctl reload docker
来应用这些更改.这些更改是任何新创建的容器的默认值,它们不适用于已创建的容器.您需要删除并重新创建任何现有容器才能应用这些设置.
max*_*sam 16
我发现的最好的脚本是
sudo sh -c 'truncate -s 0 /var/lib/docker/containers/*/*-json.log'
Run Code Online (Sandbox Code Playgroud)
它会清除所有日志,您无需停止容器。
归功于https://bytefreaks.net/applications/docker/horrible-solution-how-to-delete-all-docker-logs
Ats*_*kai 14
如果要删除所有日志文件,不仅是针对特定容器的日志,还可以使用:
docker system prune
Run Code Online (Sandbox Code Playgroud)
但是,请注意,这不会清除运行容器的日志。
pko*_*out 10
这不是理想的解决方案,但在Docker构建命令之前,这是一个很好的解决方法.
docker-clean-logs.sh
使用此内容创建脚本文件:
#!/bin/bash
rm $(docker inspect $1 | grep -G '"LogPath": "*"' | sed -e 's/.*"LogPath": "//g' | sed -e 's/",//g');
Run Code Online (Sandbox Code Playgroud)
授予执行权限:
chmod +x ./docker-clean-logs.sh
Run Code Online (Sandbox Code Playgroud)
停止要清理的Docker容器:
docker stop <container_name>
Run Code Online (Sandbox Code Playgroud)
然后运行上面的脚本:
./docker-clean-logs.sh <container_name>
Run Code Online (Sandbox Code Playgroud)
最后再次运行您的容器:
docker start ...
Run Code Online (Sandbox Code Playgroud)
此信息将转至用户sgarbesi:https://github.com/docker/compose/issues/1083
小智 7
跑步:
docker inspect {containerId}
Run Code Online (Sandbox Code Playgroud)
复制 LogPath 值
truncate -s 0 {LogaPath}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27917 次 |
最近记录: |