#!/bin/bash # ============================================ # AIOT Platform - 清理脚本 # 清理部署主机上的旧镜像 / 停止容器 / 构建缓存,释放存储空间 # ============================================ set -e # ---- 默认参数 ---- KEEP=3 PRUNE_VOLUMES=false REGISTRY_HOST="localhost:5000" usage() { cat < k {print $2}' ) if [ "${#ids_to_delete[@]}" -eq 0 ]; then log_info " └─ 无可清理镜像" continue fi log_info " └─ 删除 ${#ids_to_delete[@]} 个旧镜像" # 去重后批量删 printf '%s\n' "${ids_to_delete[@]}" | sort -u | xargs -r docker rmi -f 2>/dev/null || true done if [ "$PRUNE_VOLUMES" = true ]; then log_warn "清理未使用的 volume(--prune-volumes 已启用)" docker volume prune -f else log_info "跳过 volume 清理(如需清理请加 --prune-volumes)" fi log_info "清理 Docker 构建缓存(24h 前)..." docker builder prune -f --filter "until=24h" || true echo "" log_info "=========================================" log_info "清理完成" log_info "=========================================" echo "" log_info "清理后磁盘使用情况:" df -h | grep -E "Filesystem|/$" || true echo "" log_info "清理后 Docker 磁盘使用:" docker system df