简介
- 记录docker部署下遇到的问题及解决方法
docker容器日志导致主机磁盘空间满了
什么是Docker日志
- 在Docker中,日志是容器生成的所有输出,该输出保存在主机计算机上的日志文件中。这些日志文件可以帮助了解Docker容器的健康问题,调试问题,并监视应用程序行为。Docker在linux上,容器日志一般存放在 /var/lib/docker/containers/container_id/ 下面
为什么需要清理Docker日志
- Docker日志文件可以变得相当大,因为他们持续记录容器生成的所有输出。如果不定期的清理这些日志文件,他们将占用大量的磁盘空间。在服务器上,磁盘空间非常重要。如果磁盘空间不足,将导致系统崩溃或者性能下降。此外,当Docker容器日志过大时,可能会导致调试问题过于复杂或深度,使用Docker日志分析工具成为不可避免的任务。
如何清理Docker日志
清理Docker日志的最佳方法是通过Docker提供的内置支持在容器运行时管理日志级别并限制日志大小。但是,如果需要清理已经存在的日志文件,则可以用以下方法
使用Docker命令清理
- 清空所有容器的日志文件
1
docker container prune --filter "until=24h"
- 这将会删除已经停止容器的日志,最后使用时间超过24h的容器的日志将会被保留,也可以将24h这个参数按需更改。
- 清空所有容器的日志文件
手动清理Docker日志
- 需要找出要删除的容器ID
1
docker container ls -a
- 该命令将返回运行的,停止的和删除的容器列表,以及他们的container id, image 和 names
- 在主机上找到日志文件,Docker日志文件通常在 /var/lib/docker/containers/容器ID/容器ID-json.log路径下,其中container_id为需要清理的容器ID
- 清空日志文件
1
cat /dev/null > /var/lib/docker/containers/容器ID/容器ID-json.log
- 需要找出要删除的容器ID
启动时设置日志文件大小
- 参考 docker 官方的文档,重启docker启动时增加参数
1
docker run -it --log-opt max-size=10m --log-opt max-file=3 alpine ash