docker

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > 云和虚拟化 > docker > Docker容器日志清理

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

作者:学亮编程手记

已经经历两次开发环境磁盘占用满的情况的,第一次是部署太频繁,然后有很多无用的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

注意事项

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

您可能感兴趣的文章:
阅读全文