Are you ready for more action?
chmod +x armagedocker
sudo mv armagedocker /usr/local/bin/
armagedocker.sh
Are you ready for more action?
chmod +x armagedocker
sudo mv armagedocker /usr/local/bin/
armagedocker.sh
#!/bin/bash | |
# Colores para los mensajes | |
RED='\033[0;31m' | |
GREEN='\033[0;32m' | |
YELLOW='\033[1;33m' | |
NC='\033[0m' # No Color | |
# Detect container runtime (podman or docker) | |
CONTAINER_RUNTIME=$(which podman 2>/dev/null || which docker 2>/dev/null) | |
if [ -z "$CONTAINER_RUNTIME" ]; then | |
echo "Error: No container runtime found. Please install podman or docker." | |
exit 1 | |
fi | |
RUNTIME_CMD=$(basename "$CONTAINER_RUNTIME") | |
echo "Using container runtime: $RUNTIME_CMD" | |
echo -e "${RED}¡ADVERTENCIA!${NC}" | |
echo -e "${YELLOW}Este script eliminará TODOS los contenedores, imágenes, volúmenes y redes de Docker.${NC}" | |
echo -e "${YELLOW}Esta acción no se puede deshacer.${NC}" | |
read -p "¿Estás seguro que deseas continuar? (s/N): " respuesta | |
if [[ "$respuesta" =~ ^[Ss]$ ]]; then | |
echo -e "\n${YELLOW}Iniciando limpieza total de Docker...${NC}" | |
# Detener todos los contenedores en ejecución | |
echo -e "\n${GREEN}Deteniendo todos los contenedores...${NC}" | |
$RUNTIME_CMD stop $($RUNTIME_CMD ps -aq) 2>/dev/null || echo "No hay contenedores en ejecución" | |
# Eliminar todos los contenedores | |
echo -e "\n${GREEN}Eliminando todos los contenedores...${NC}" | |
$RUNTIME_CMD rm -f $($RUNTIME_CMD ps -aq) 2>/dev/null || echo "No hay contenedores para eliminar" | |
# Eliminar todas las imágenes | |
echo -e "\n${GREEN}Eliminando todas las imágenes...${NC}" | |
$RUNTIME_CMD rmi -f $($RUNTIME_CMD images -aq) 2>/dev/null || echo "No hay imágenes para eliminar" | |
# Eliminar todos los volúmenes | |
echo -e "\n${GREEN}Eliminando todos los volúmenes...${NC}" | |
$RUNTIME_CMD volume rm $($RUNTIME_CMD volume ls -q) 2>/dev/null || echo "No hay volúmenes para eliminar" | |
# Eliminar todas las redes personalizadas | |
echo -e "\n${GREEN}Eliminando todas las redes personalizadas...${NC}" | |
$RUNTIME_CMD network rm $($RUNTIME_CMD network ls -q) 2>/dev/null || echo "No hay redes personalizadas para eliminar" | |
# Eliminar imágenes huérfanas (dangling) | |
echo -e "\n${GREEN}Eliminando imágenes huérfanas...${NC}" | |
$RUNTIME_CMD system prune -af --volumes | |
echo -e "\n${GREEN}¡Limpieza completada!${NC}" | |
# Mostrar el estado actual | |
echo -e "\n${YELLOW}Estado actual de Docker:${NC}" | |
echo -e "\n${GREEN}Contenedores:${NC}" | |
$RUNTIME_CMD ps -a | |
echo -e "\n${GREEN}Imágenes:${NC}" | |
$RUNTIME_CMD images | |
echo -e "\n${GREEN}Volúmenes:${NC}" | |
$RUNTIME_CMD volume ls | |
echo -e "\n${GREEN}Redes:${NC}" | |
$RUNTIME_CMD network ls | |
else | |
echo -e "\n${YELLOW}Operación cancelada${NC}" | |
fi |