Jenkins 打包 Docker 后镜像文件自动清理
前言
通过 Jenkins 或其他方式进行 CI 后,一般打包的服务器上会存留所有打包好的镜像文件,如果在构建途中失败了,还会存在构建时失败的镜像文件和容器。日积月累下来这些无用的文件会越来越多。并且通过自动化构建好的镜像文件会自动推送到 Harbor
服务器中,本地自然就没有留存的必要了。
清理
对于清理 docker 磁盘空间其自带的命令即可满足
查看 docker 磁盘空间使用:
docker system df
清理未使用的容器:
docker container prune -f
清理未使用的卷:
docker volume prune -f
清理未使用的网络:
docker network prune -f
清理未使用的镜像文件:
docker image prune -af
注:以上操作均带参数 -f
表示强制的
通过以上命令我们可以有选择的对 docker 进行磁盘空间清理,如果需要一次搞定也有个命令可以使用 docker system prune -af
,该命令的作用为删除关闭的容器、无用的数据卷和网络以及未使用的镜像文件。
自动清理
在进行 CI 的服务器上通过 crontab
实现自动清理构建后的 docker 相关文件
添加如下清理脚本到
/etc/cron.weekly/
目录下,每周清理一次/etc/cron.weekly/clean-docker.sh 1
2
docker system prune -af为脚本赋予可执行权限
1
chmod +x /etc/cron.weekly/clean-docker.sh
执行时间说明:
/etc/cron.hourly
:每小时的01分时执行/etc/cron.daily
:为每天4点02分执行/etc/cron.weekly
: 为每周日4点22分分执行/etc/cron.monthly
:为每月1号的4点02分执行
- 本文标题:Jenkins 打包 Docker 后镜像文件自动清理
- 本文作者:akiya
- 本文链接:https://little-star.love/posts/adb24bac/
- 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!