docker报 “no space left on device”(磁盘空间不足)问题解决方式

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
简介: docker等命令报 “no space left on device”(磁盘空间不足)问题解决方式

问题排查

查看系统磁盘空间大小

#查看磁盘占用情况df-TH

image.png

结果:发现根目录下磁盘docker可用空间不足,这种情况可能出现是一下几种情况引起的:

1、docker中废弃的none镜像过多占用空间大

2、docker服务产生的日志过多

3、分配磁盘空间不足

查看各个目录占用情况

命令:du-sh/*  //查看根目录文件占用的磁盘大小参数说明:-a //显示目录中所有子目录和文件占用大小-s //表示统计目录下占用的总空间大小

清除废弃文件

1、Docker 清理none镜像

命令:docker system prune //清理容器中废弃的镜像,容器,网络等

2、清理日志

先查看日志所在目录

命令:docke info //查看docker部署的详细信息 可知docker部署在、/var/lib/docker中

在目录中会存在以目录名为前缀,以“-json.log”为后缀的目录文件。

image.png

清理

// 可使用如下命令对该文件的内容进行清理:
cat /dev/null > *-json.log  //此命令相当于删除日志放入回收站df -h 
//再次查看磁盘占用情况,发现docker占用内存少了
df -TH

有兴趣的同学可用去看下cat /dev/null的作用


脚本删除docker中日志

1、脚本处理

如果针对此问题经常出来,手动每次进行清理特别麻烦,可采用脚本来进一步改进。比如设置一个查看的脚本docker_log_size.sh:

echo"======== start clean docker containers logs ========"logs=$(find /var/lib/docker/containers/ -name *-json.log)for log in$logsdoecho"clean logs : $log"cat /dev/null > $logdoneecho"======== end clean docker containers logs ========"

2、使用crontab定时任务设置(简单说明下命令)

参数说明:

crontab -e //创建定时任务定时执行脚本 保存退出即可,cron写的不对 有问题会报错

crontab -l 列出某个用户cron服务的详细内容

crontab -r 删除某个用户的cron服务(慎用)

linux中使用crontab创建定时任务

补充:

我们也可以设置docker允许日志的大小和个数

Docker限制日志文件大小

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
11月前
|
存储 Docker 容器
Docker load 大镜像(17G) 报错no space left on device
Docker load 大镜像(17G) 报错no space left on device
503 1
|
6月前
|
网络协议 jenkins 调度
Docker【部署 06】Swarm实践及Operation not permitted和No chain/target/match by that name问题处理
Docker【部署 06】Swarm实践及Operation not permitted和No chain/target/match by that name问题处理
421 0
Docker【部署 06】Swarm实践及Operation not permitted和No chain/target/match by that name问题处理
|
6月前
|
存储 Kubernetes Linux
解决Linux中/var/lib/docker/磁盘空间过大及k8s存储卷磁盘空间使用率过高的问题
解决Linux中/var/lib/docker/磁盘空间过大及k8s存储卷磁盘空间使用率过高的问题
865 0
|
6月前
|
Linux Docker 容器
Docker 的/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录
Docker 的/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录
630 1
|
1月前
|
缓存 运维 Docker
容器化运维:Docker Desktop 占用磁盘空间过大?教你轻松解决!
Windows Docker Desktop 使用过程中,因镜像、容器数据及构建缓存的累积,可能导致磁盘空间占用过高。通过删除无用镜像与容器、压缩磁盘以及清理构建缓存等方法,可有效释放空间。具体步骤包括关闭WSL、使用`diskpart`工具压缩虚拟磁盘、执行`docker buildx prune -f`清理缓存等。这些操作能显著减少磁盘占用,提升系统性能。
316 4
|
1月前
|
前端开发 开发工具 git
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
如何清理 docker 磁盘空间+修改 Gitea 服务器的 Webhook 设置+前端一些好学好用的代码规范-git hook+husky + commitlint
34 5
|
2月前
|
NoSQL Redis Docker
5-11write /var/lib/docker/tmp/GetImageBlob2366037717: no space left on device
5-11write /var/lib/docker/tmp/GetImageBlob2366037717: no space left on device
|
4月前
|
Linux Docker 容器
docker 容器大小查看及清理docker磁盘空间
docker 容器大小查看及清理docker磁盘空间
831 0
|
4月前
|
Linux Docker 容器
docker 容器大小查看及清理docker磁盘空间
docker 容器大小查看及清理docker磁盘空间
572 0
|
6月前
|
Linux Docker 容器
/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录...
/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录...
221 0