Docker删除悬空镜像清理空间
手动命令
docker images -f "dangling=true"
docker rmi $(docker images -f "dangling=true" -q)
shell脚本
#!/bin/bash
# 定义指定时间,格式为 "YYYY-MM-DD HH:MM:SS"
specified_time="2024-01-01 00:00:00"
# 将指定时间转换为时间戳
specified_timestamp=$(date -d "$specified_time" +%s)
# 列出所有悬空镜像,获取镜像 ID 和创建时间
images=$(docker images -f "dangling=true" --format "{{.ID}}\t{{.CreatedAt}}")
# 遍历镜像列表
for image in $images; do
# 提取镜像 ID
image_id=$(echo $image | awk '{print $1}')
# 提取镜像创建时间
created_at=$(echo $image | awk '{$1=""; print $0}' | sed 's/^ *//')
# 将创建时间转换为时间戳
created_timestamp=$(date -d "$created_at" +%s)
# 比较创建时间和指定时间
if [ $created_timestamp -lt $specified_timestamp ]; then
# 删除镜像
docker rmi $image_id
if [ $? -eq 0 ]; then
echo "成功删除镜像: $image_id"
else
echo "删除镜像 $image_id 失败"
fi
fi
done
浙公网安备 33010602011771号