docker占用空间
#docker system df
docker system df 命令给出了images、containers、volumes、build cache占用磁盘的大小。最后一列RECLAIMABLE,表示可回收的空间大小。
使用docker system df -v,可以显示更详细的信息:
知道空间占用情况了,结下来就是做清理工作。
docker提供了docker system prune来清理停掉的container、悬挂的image(没有tag)、没有使用的network、数据卷。
当然有个-a参数,可以清理所有的东西,包括没有使用的镜像(谨慎使用)。
cat dockerImageClean.sh
#!/bin/bash
# docker clean
tp=`df -h | grep \/dev\/vdb | awk '{print $5}' | tr -d %`
t1=`docker images | grep -E "10.10.*sensors-log" |awk 'NR > 4 {printf "%s\n",$3}'`
t2=`docker images | grep -E "10.10.*satrun " |awk 'NR > 4 {printf "%s\n",$3}'`
deleteImage() {
if [ $tp -ge 50 ];then
for i in $1
do
docker rmi -f $i
#echo $i
done
fi
}
#delete sensors-log and sensors-logagent
for i in $t1
do
deleteImage $i
done
#delete saturn
for j in $t2
do
deleteImage $j
done