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

简介: 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日志并进行多维度分析。
目录
相关文章
|
4月前
|
存储 Docker 容器
Docker load 大镜像(17G) 报错no space left on device
Docker load 大镜像(17G) 报错no space left on device
157 0
|
4月前
|
网络协议 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问题处理
131 0
Docker【部署 06】Swarm实践及Operation not permitted和No chain/target/match by that name问题处理
|
4月前
|
存储 Kubernetes Linux
解决Linux中/var/lib/docker/磁盘空间过大及k8s存储卷磁盘空间使用率过高的问题
解决Linux中/var/lib/docker/磁盘空间过大及k8s存储卷磁盘空间使用率过高的问题
151 0
|
8月前
|
存储 Docker 容器
解决 docker 磁盘空间不足问题
解决 docker 磁盘空间不足问题
855 0
|
4月前
|
Linux Docker 容器
Docker 的/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录
Docker 的/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录
252 1
|
26天前
|
Linux Docker 容器
/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录...
/var/lib/docker/overlay2 占用很大,清理Docker占用的磁盘空间,迁移 /var/lib/docker 目录...
|
5月前
|
缓存 运维 Docker
Docker清理磁盘空间
在日常运维当中,Docker会产生一些运行时的临时文件,我们需要定时的清理掉他们,不然将会对磁盘造成极大的压力。
92 0
|
8月前
|
网络安全 Docker 容器
docker启动容器时报错:iptables: No chain/target/match by that name
【已解决】docker启动容器时报错:iptables: No chain/target/match by that name
1185 0
|
8月前
|
网络协议 应用服务中间件 Docker
docker启动容器报错iptables failed:....docker0: iptables: No chain/target/match by that name.
docker启动容器报错iptables failed:....docker0: iptables: No chain/target/match by that name.
105 0
|
9月前
|
存储 JSON 缓存
linux rancher 清理docker容器磁盘空间
linux rancher 清理docker容器磁盘空间