删除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
相关推荐
藥瓿亭12 分钟前
K8S认证|CKS题库+答案| 8. 沙箱运行容器 gVisor
linux·运维·docker·云原生·容器·kubernetes·cks
rocksun17 分钟前
需要尽早知道的容器安全知识
安全·容器·kubernetes
网硕互联的小客服1 小时前
如何排查 Docker 容器资源占用过高的问题?
运维·服务器·网络·安全·docker·容器
ReadThroughLife3 小时前
【已解决】MACOS M4 芯片使用 Docker Desktop 工具安装 MICROSOFT SQL SERVER
microsoft·macos·docker·容器
KrityCat3 小时前
阿里云Alibaba Cloud安装Docker与Docker compose【图文教程】
阿里云·docker·容器
{⌐■_■}3 小时前
【ubuntu】虚拟机安装配置,sh脚本自动化,包含 apt+时间同步+docker+mysql+redis+pgsql
ubuntu·docker·自动化
Orlando cron5 小时前
Kubernetes 网络模型深度解析:Pod IP 与 Service 的负载均衡机制,Service到底是什么?
网络·tcp/ip·kubernetes
藥瓿亭11 小时前
K8S认证|CKS题库+答案| 9. 网络策略 NetworkPolicy
linux·运维·docker·云原生·容器·kubernetes·cks
955.11 小时前
k8s从入门到放弃之Pod的容器探针检测
云原生·容器·kubernetes
LFloyue11 小时前
Linux离线(zip方式)安装docker
linux·docker