在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删除,相当于多了一个保障。
2021年11月16日 12:02 沙发
#!/bin/sh
# clear weeks docker images
# 临时加载环境变量
source /etc/profile
DATE_SEARCH=”weeks months”
for i in $DATE_SEARCH; do
docker images | grep $i | awk ‘{print $3}’ | xargs docker rmi
done
2021年11月26日 22:56 1层
@zhangsan 你这是写到环境变量里了吧,怎么还有一个source /etc/profile