我已经开始尝试使用 docker 容器。
经过几周的使用,我发现自容器启动以来的所有日志消息仍然存在。一旦这些旧日志不再需要,有没有办法清除或删除这些容器的日志?
访问日志的命令是docker logs CONTAINERID
有什么方法可以清除日志
答案1
目前,docker 没有任何方法清除容器旧日志。问题曾有人提出添加此功能,但被拒绝。
这时,你必须手动进行。
容器日志原来位于/var/lib/docker/containers/container-id/container-id-json.log
,您可以删除它以清理容器日志:
$ docker logs flask
172.17.42.1 - - [20/Nov/2014 03:07:20] "GET / HTTP/1.1" 200 -
172.17.42.1 - - [20/Nov/2014 03:07:20] "GET /static/public/css/common.css?37db3944 HTTP/1.1" 304 -
172.17.42.1 - - [20/Nov/2014 03:07:20] "GET /static/public/images/Character-2x.png HTTP/1.1" 304 -
172.17.42.1 - - [20/Nov/2014 03:07:20] "GET /static/public/images/linkedin.png HTTP/1.1" 304 -
172.17.42.1 - - [20/Nov/2014 03:07:20] "GET /static/public/images/facebook.png HTTP/1.1" 304 -
...
$ mv /var/lib/docker/containers/container-id/container-id-json.log{.bak,}
$ docker logs flask
<empty>
答案2
简短回答:它是一个容器。您的日志不应存储在容器内。配置您的服务以记录到远程日志服务器(通过 syslog 或 syslog-ng)。还有第三方运行日志服务(SumoLogic、Loggly)。