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-compose 运行 MySQL的方法

    使用 docker-compose 运行 MySQL的方法

    这篇文章主要介绍了使用 docker-compose 运行 MySQL的方法,本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • Docker资源限制Cgroup的深入理解

    Docker资源限制Cgroup的深入理解

    _cgroups,是一个非常强大的linux内核工具,他可以限制被namespace隔离起来的资源,本文主要介绍了Docker资源限制Cgroup的深入理解。具有一定的参考价值,感兴趣的可以了解一下
    2022-07-07
  • Docker中配置国内镜像设置

    Docker中配置国内镜像设置

    这篇文章主要介绍了Docker中配置国内镜像设置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • Ubuntu24.04LTS在线安装Docker引擎的详细过程

    Ubuntu24.04LTS在线安装Docker引擎的详细过程

    本文介绍了在Ubuntu 24.04 LTS系统上安装Docker引擎的步骤,包括卸载旧版本、设置Docker APT仓库、安装最新版或指定版本的Docker,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • 如何清理docker的overlay2 目录

    如何清理docker的overlay2 目录

    本文介绍了如何清理Docker的overlay2目录,包括确认overlay2目录的位置、清理未使用的容器和镜像、手动清理overlay2目录、清理日志文件、限制日志大小以及检查磁盘空间,感兴趣的朋友一起看看吧
    2025-03-03
  • 云centos开启docker远程服务链接的实现步骤

    云centos开启docker远程服务链接的实现步骤

    本文主要介绍了云centos开启docker远程服务链接,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Docker安装常用组件(mysql,redis)的方法

    Docker安装常用组件(mysql,redis)的方法

    今天小编就为大家分享一篇关于Docker安装常用组件(mysql,redis)的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Docker安装RabbitMQ的超详细步骤

    Docker安装RabbitMQ的超详细步骤

    RabbitMQ是一套开源的消息队列服务软件,是由LShift提供的一个 Advanced Message Queuing Protocol的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,这篇文章主要给大家介绍了关于Docker安装RabbitMQ的超详细步骤,需要的朋友可以参考下
    2022-08-08
  • docker之创建MariaDB镜像的方法

    docker之创建MariaDB镜像的方法

    这篇文章主要介绍了docker之创建MariaDB镜像,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Linux如何使用Docker部署DashDot访问本地服务器面板

    Linux如何使用Docker部署DashDot访问本地服务器面板

    DashDot是一款简单、实用的开源现代服务器仪表盘,主要应用于小型 VPS 和私人的服务器(比如说NAS),它是一个界面非常漂亮的监控服务器面板,这篇文章给大家介绍Linux使用Docker部署DashDot访问本地服务器面板的相关知识,感兴趣的朋友跟随小编一起看看吧
    2024-04-04

最新评论