Skip to content

Instantly share code, notes, and snippets.

@Pelirrojo
Last active March 11, 2025 15:43
Show Gist options
  • Save Pelirrojo/b6f311478a18d90cb365a9dd3f552520 to your computer and use it in GitHub Desktop.
Save Pelirrojo/b6f311478a18d90cb365a9dd3f552520 to your computer and use it in GitHub Desktop.
An script to clean all docker/podman stuff in your laptop

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment