Docker容器日志清理的几种方法

 更新时间:2025年07月02日 08:38:42   作者:学亮编程手记  
已经经历两次开发环境磁盘占用满的情况的,第一次是部署太频繁,然后有很多无用的images没有删除掉,第二次是docker容器,某些服务写了很多日志,导致磁盘被写满,那么怎么清理掉一些“垃圾”,让docker占用空间变得小一点?本文给大家整理了几种清理日志的方法

Docker 容器日志清理方法

Docker 容器日志可能会占用大量磁盘空间,以下是几种清理容器日志的方法:

1. 查看日志文件大小

首先查看哪些容器的日志占用了大量空间:

docker ps -qa | xargs docker inspect --format='{{.Id}}' | while read id; do
    echo "Container $id logs size: $(sudo du -sh /var/lib/docker/containers/$id/$id-json.log)"
done

2. 清理单个容器的日志

# 找到容器ID
docker ps -a

# 清空日志文件(替换CONTAINER_ID为实际容器ID)
truncate -s 0 /var/lib/docker/containers/CONTAINER_ID/CONTAINER_ID-json.log

3. 清理所有容器的日志

truncate -s 0 /var/lib/docker/containers/*/*-json.log

4. 设置日志轮转(推荐)

更好的方法是配置 Docker 的日志驱动,限制日志大小:

# 在启动容器时限制日志大小
docker run --log-opt max-size=10m --log-opt max-file=3 ...

# 或者修改全局配置(在/etc/docker/daemon.json中)
{
  "log-driver": "json-file",
  "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

然后重启 Docker 服务:

sudo systemctl restart docker

5. 使用 Docker 日志清理工具

# 清理所有停止的容器日志
docker system prune

# 清理更彻底(包括未使用的网络、构建缓存等)
docker system prune -a

注意事项

  • 清理日志前确保不需要这些日志用于调试或审计
  • 生产环境建议使用日志收集系统(如 ELK)而不是依赖本地日志
  • 对于正在运行的容器,清理日志后可能需要重启容器才能使新配置生效

到此这篇关于Docker容器日志清理的几种方法的文章就介绍到这了,更多相关Docker容器日志清理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker中如何将jar包构建成镜像并执行

    docker中如何将jar包构建成镜像并执行

    这篇文章主要介绍了docker中如何将jar包构建成镜像并执行问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • docker内服务访问宿主机服务的实现

    docker内服务访问宿主机服务的实现

    本文主要介绍了docker内服务访问宿主机服务的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-10-10
  • docker利用单个镜像映射到多个端口操作

    docker利用单个镜像映射到多个端口操作

    这篇文章主要介绍了docker利用单个镜像映射到多个端口操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

    jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明

    今天小编就为大家分享一篇关于jenkins中通过Publish Over SSH插件将项目部署到远程机器上的讲解说明,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • Docker部署及使用压测神器sysbench的方法

    Docker部署及使用压测神器sysbench的方法

    sysbench 是一个开源跨平台的多线程性能测试工具,这篇文章主要介绍了Docker部署及使用压测神器sysbench的相关知识,需要的朋友可以参考下
    2022-08-08
  • docker删除拉取的镜像释放内存的操作方法

    docker删除拉取的镜像释放内存的操作方法

    kali内存满了,释放一下内存,通过查看本地镜像,删除本地镜像,文中给大家介绍了docker image ls详解,对docker删除拉取的镜像释放内存相关知识操作感兴趣的朋友一起看看吧
    2023-01-01
  • docker编译IJKPlayer播放器记录详解

    docker编译IJKPlayer播放器记录详解

    这篇文章主要为大家介绍了docker编译IJKPlayer播放器记录详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Docker部署HertzBeat实时监控告警系统

    Docker部署HertzBeat实时监控告警系统

    HertzBeat是一款开源的实时监控告警系统,本文就来介绍一下Docker部署HertzBeat实时监控告警系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • docker-compose中的redis-stack详解

    docker-compose中的redis-stack详解

    Redis是一个开源的内存数据结构存储系统,主要用于数据库、缓存和消息代理,支持多种数据结构,RedisStack则基于Redis,提供栈的操作及扩展功能,适合复杂数据处理,本文给大家介绍docker-compose中的redis-stack,感兴趣的朋友跟随小编一起看看吧
    2024-09-09
  • docker容器增加或者修改容器映射端口的实现方法

    docker容器增加或者修改容器映射端口的实现方法

    在只有使用docker安装的容器,没有使用docker-compose或者其他客户端工具,如果要增加或者修改容器端口,也是可以增加或者修改容器端口映射,本文给大家介绍了docker容器增加或者修改容器映射端口的实现方法,需要的朋友可以参考下
    2025-01-01

最新评论