删除k8s 或者docker运行失败的脚本

bash 复制代码
vi  delete_exited_containers.sh
bash 复制代码
#!/bin/bash

# 列出所有停止的容器并存储到数组
list_exited_containers() {
    echo -e "\nStopped containers:"
    containers=()
    # 获取停止的容器信息并存入数组
    while IFS= read -r line; do
        containers+=("$line")
    done < <(docker ps -a --filter "status=exited" --format "{{.ID}} {{.Names}}")
    
    # 显示停止的容器列表
    for i in "${!containers[@]}"; do
        echo "[$i] ${containers[$i]}"
    done
}

# 删除指定的容器
delete_containers() {
    local indexes=("$@")
    for index in "${indexes[@]}"; do
        if [[ $index =~ ^[0-9]+$ ]] && [[ $index -lt ${#containers[@]} ]]; then
            container_info=${containers[$index]}
            container_id=$(echo "$container_info" | awk '{print $1}')
            echo "Deleting container: $container_info"
            docker rm "$container_id"
        else
            echo "Invalid index: $index"
        fi
    done
}

# 主逻辑
while true; do
    list_exited_containers

    if [[ ${#containers[@]} -eq 0 ]]; then
        echo "No stopped containers to delete."
        break
    fi

    # 获取用户输入
    echo -e "\nEnter indexes of containers to delete (space-separated), or type 'all' to delete all, or 'exit' to quit:"
    read -r input

    if [[ "$input" == "exit" ]]; then
        echo "Exiting..."
        break
    elif [[ "$input" == "all" ]]; then
        # 删除所有容器
        for i in "${!containers[@]}"; do
            container_id=$(echo "${containers[$i]}" | awk '{print $1}')
            echo "Deleting container: ${containers[$i]}"
            docker rm "$container_id"
        done
        echo "All stopped containers deleted."
    else
        # 使用下标删除指定的容器
        IFS=' ' read -r -a indexes <<< "$input"
        delete_containers "${indexes[@]}"
    fi

    echo -e "\nOperation complete. Would you like to continue? (yes/no):"
    read -r continue_input
    if [[ "$continue_input" != "yes" ]]; then
        echo "Exiting..."
        break
    fi
done

赋予执行权限

bash 复制代码
chmod +x delete_containers_by_index.sh

运行脚本

bash 复制代码
./delete_containers_by_index.sh

输入下标,然后输入yes确认删除

bash 复制代码
0
yes
相关推荐
冰封之寂2 小时前
Docker Compose 容器编排实战:从入门到 LNMP 环境部署-zabbix监控
docker·容器·zabbix
带娃的IT创业者2 小时前
原生体验的回归:深入解析 TREK —— 专为 Apple Silicon 打造的轻量级容器方案
macos·docker·虚拟化·开源项目·容器化·apple silicon·trek
爱吃龙利鱼2 小时前
K8s 运维体系搭建:全组件监控与日志收集实战(victoria-metrics-k8s-stack 0.87.0)
运维·容器·kubernetes
欢醉3 小时前
踩了个大坑!K8s 挂载目录的日志,居然也在吃容器内存?
kubernetes·springcloud
沉迷学习 日益消瘦3 小时前
10-可观测性与排错
kubernetes
心如鉄补3 小时前
分布式链路追踪系统之docker-compose安装skywalking
分布式·docker·skywalking
冰封之寂13 小时前
Docker 资源管理终极指南:CPU、内存与 IO 的精细化控制
linux·运维·服务器·docker·云计算
9523615 小时前
Docker - 基础
运维·后端·docker·容器
Code_Ignis16 小时前
docker国内可用源(持续维护)
运维·docker·容器
heimeiyingwang1 天前
【架构实战】云原生架构:容器化与Kubernetes落地之路
云原生·架构·kubernetes