如何清除运行 Docker 容器的日志
2023-09-27 14:27:53 时间
长时间运行的 Docker 容器会迅速积累大量的日志行。在访问和过滤数据时,这些会消耗存储容量并降低性能。虽然 Docker 包含用于查看日志的集成工具,但没有用于清理它们的内置机制。
在本文中,您将学习如何清除正在运行的 Docker 容器的日志,而无需重新启动或替换它们。您还将看到一些在保留旧数据的同时更有效地处理大型日志的技术。
理解问题
Docker 从容器前台进程的标准输出和错误流中收集日志。该docker logs命令用于检索这些日志,但它不允许您删除旧行。
Docker 支持许多不同的日志记录驱动程序,因此不可能提供标准化的清理机制。本文重点介绍标准json-file日志记录驱动程序,其中日志行存储在容器主机文件系统上的 JSON 文件中。如果您需要清理流式传输到远程主机的日志,请参阅存储驱动程序的文档。
json-file驱动程序创建的日志文件存储在该/var/lib/docker/containers目录下。每个容器都有自己的日志文件,该文件会在其整个生命周期中使用。默认情况下没有配置日志轮换。
简单地删除日志文件并不是一个有效的解决方案。Docker 期望该文件持续可用,并且如果它被删除不会自动重新创建它。清除现有日志的内容以避免影响任何当前写入会更安全。
发现日志文件的路径
首先找到目标容器日志文件的路径。my-app您可以通过运行以下命令来检索调用的容器的日志文件路径:
$ docker inspect --format
相关文章
- 如何将docker镜像的日志输出到标准输出/错误输出?(将自定义的应用日志输出到控制台)
- docker限制输出到根目录的日志大小,防止占用空间过多导致复位
- ClickHouse伪分布式安装-Docker环境
- Docker日志
- 谈一下Docker与Kubernetes集群的日志和日志管理
- Docker实现容器具有固定IP
- Docker:镜像加速器
- 公司要新招美女跟我学docker,你来吗?
- Docker容器之网络模式
- 修改Docker默认存储位置的方法
- 通过docker安装mysql5.7稳定版
- Docker镜像扫描器的实现
- 编辑docker容器中的文件
- Docker Java应用日志时间和容器时间不一致
- 《Docker技术入门与实战》——3.8 本章小结
- 在docker 容器开启ssh , 并映射22端口到物理载体机上以使外网访问
- 浅析Unix domain socket是什么、Java如何使用UnixSocket调用Docker API对容器进行操作(jnr-unixsocket的使用)
- Docker容器日志管理最佳实践
- Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock