记一次Linux下Docker镜像服务器磁盘空间清理

我们开发环境Jenkins构建项目时报服务器磁盘空间不足,导致项目自动化构建部署失败,

Docker镜像服务器磁盘空间清理我们做了多次了,之前在清理Docker镜像服务器时走了不少弯路,查了不少Docker镜像服务器空间清理,都大同小异,都是一些如何清理历史镜像文件的文章,而实际按照清理镜像文件进行一顿操作,释放的内存了了,最近一次磁盘空间报警事件,镜像文件清理也就才清理了40M,完全达不到清理磁盘空间的效果。

事实上我们的镜像执行sh脚本本身包含清理垃圾镜像文件的步骤:

复制代码
#!/usr/bin/env bash
app_name='xxxx'
docker stop ${app_name}
echo '----stop container----'
docker rm ${app_name}
echo '----rm container----'
docker rmi `docker images | grep none | awk '{print $3}'`
echo '----rm none images----'
docker run -e TZ="Asia/Shanghai" -p 7200:7200 -p 8734:8734  --name ${app_name} \
--link registry2:registry2 \
-v /etc/localtime:/etc/localtime \
-v /usr/local/server-log/xxxx:/logs \
-d ${app_name}:latest
echo '----start container----'
~

因此,重要事情说三遍:当Docker镜像服务器磁盘空间不足时,首先要考虑的时服务器的日志文件、大文件等等,最后才考虑Docker镜像本身占用的磁盘内存

磁盘清理思路分享

du与df命令结合

df命令

df命令用于查看磁盘分区的使用情况,了解磁盘总量及用量,默认单位为KB。

当磁盘空间报警时,我们可以使用df命令查看磁盘分区使用情况:

注意,使用df -h命令会看到Docker镜像的/var/lib/docker 目录占很多空间,其实这是假象,许多同事初次看到这个接口首先应该就是去考虑如何清理/var/lib/docker,我也不例外。

不要受/var/lib/docker 目录影响,继续分析空间占用情况。

du命令

前面通过df命名我们大致了解了我们磁盘分区内存使用情况,使用du命令可以当前目录下文件、目录在磁盘中占用的空间的大小。

来到服务器顶层目录,执行命令:

复制代码
du -sh *

找到内存使用异常的文件夹,进入其目录依次执行du -sh *,最终找到占用内存的大文件或日志,进行清理。

分享下我在情况过程找到的大文件

清理镜像

通过前面df 和du配合分析清理空间后,基本就能释放服务器磁盘空间,就简单提下Docker镜像清理咯,毕竟网上一大堆。

镜像清理。

复制代码
docker image prune -f 

批量清除无用的镜像

复制代码
docker images | awk 'NR!=1{print $1":"$2}' | xargs docker rmi
相关推荐
Johny_Zhao5 小时前
OpenClaw安装部署教程
linux·人工智能·ai·云计算·系统运维·openclaw
fetasty19 小时前
rustfs加picgo图床搭建
docker
YuMiao19 小时前
gstatic连接问题导致Google Gemini / Studio页面乱码或图标缺失问题
服务器·网络协议
蝎子莱莱爱打怪1 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
chlk1232 天前
Linux文件权限完全图解:读懂 ls -l 和 chmod 755 背后的秘密
linux·操作系统
舒一笑2 天前
Ubuntu系统安装CodeX出现问题
linux·后端
改一下配置文件2 天前
Ubuntu24.04安装NVIDIA驱动完整指南(含Secure Boot解决方案)
linux
深紫色的三北六号2 天前
Linux 服务器磁盘扩容与目录迁移:rsync + bind mount 实现服务无感迁移(无需修改配置)
linux·扩容·服务迁移
SudosuBash2 天前
[CS:APP 3e] 关于对 第 12 章 读/写者的一点思考和题解 (作业 12.19,12.20,12.21)
linux·并发·操作系统(os)
小p3 天前
docker学习7:docker 容器的通信方式
docker