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
posted @ 2025-05-22 08:57  低端逆袭  阅读(48)  评论(0)    收藏  举报