👋 欢迎来到吴老二技术博客,专注运维 / 数据库 / 云原生
首页/云原生/正文

docker定时删除过期镜像

吴
吴老二
2020-11-06云原生8496 次浏览0 条评论
在docker使用的过程中,来回的拉取镜像,如果不定期删除导致本地的磁盘空间会越来越大,占用更多的空间资源。这里写一下定期清理一些不需要的镜像,在镜像的使用过程中我们使用docker images能够查看当前节点上的所有镜像资源,还有镜像创建的时间。我们可以根据时间来删除不需要的镜像。看下面的镜像显示内容:
[root@wulaoer ~]# docker images
REPOSITORY      TAG                          IMAGE ID            CREATED             SIZE
wulaoer         78                           05c692e1e2ad        3 hours ago         1.13GB
wulaoer1        90                           f0391fdb559f        6 hours ago         1.15GB
wulaoer2        49                           aeabd7428461        9 hours ago         151MB
wulaoer3        812                          4a614b0d0410        9 hours ago         1.16GB
我们根据时间删除,也就是第四列的创建时间,小时时hours,天是day,周时weeks,月是months,这里就筛选一下。
[root@wulaoer ~]# docker images | grep weeks | awk '{print $3}'|xargs docker rmi
这样就可以把镜像中一周之前的所有镜像删除,但是超过一个月的镜像无法删除,需要循环周,月才能把一个星期之前的所有的日志删除,这样如果是k8s集群,批量执行比较好一点,或者做个定时任务等。以后就不需要因为镜像的问题而考虑镜像占用资源了,我们可以写一个sh脚本,用来删除这些镜像。
for i in {"weeks","months"};
    docker images | grep $i | awk '{print $3}'|xargs docker rmi
    docker images | grep $i | awk '{print $1}'|xargs docker rmi
;done
这里可以根据镜像的名称或者镜像的ID删除镜像,这样能够在使用镜像名称无法删除的时候,可以使用镜像的ID删除,相当于多了一个保障。
文章底部广告位在后台「广告设置」填写广告代码后显示

评论 0

评论需 登录 后发表(注册并验证邮箱)。
还没有评论,来抢沙发~