You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.0 KiB
79 lines
2.0 KiB
#!/bin/bash
|
|
|
|
# Script to kill all running Docker containers
|
|
# Usage: ./kill_all_containers.sh [--force]
|
|
|
|
set -e
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
# Function to print colored output
|
|
print_info() {
|
|
echo -e "${GREEN}[INFO]${NC} $1"
|
|
}
|
|
|
|
print_warning() {
|
|
echo -e "${YELLOW}[WARNING]${NC} $1"
|
|
}
|
|
|
|
print_error() {
|
|
echo -e "${RED}[ERROR]${NC} $1"
|
|
}
|
|
|
|
# Check if Docker is running
|
|
if ! sudo docker info >/dev/null 2>&1; then
|
|
print_error "Docker is not running or not accessible. Please start Docker first."
|
|
exit 1
|
|
fi
|
|
|
|
# Get list of running containers
|
|
RUNNING_CONTAINERS=$(sudo docker ps -q)
|
|
|
|
if [ -z "$RUNNING_CONTAINERS" ]; then
|
|
print_info "No running containers found."
|
|
exit 0
|
|
fi
|
|
|
|
# Count running containers
|
|
CONTAINER_COUNT=$(echo "$RUNNING_CONTAINERS" | wc -l | tr -d ' ')
|
|
|
|
print_info "Found $CONTAINER_COUNT running container(s):"
|
|
sudo docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Names}}\t{{.Status}}"
|
|
|
|
# Check for --force flag
|
|
FORCE_KILL=false
|
|
if [ "$1" = "--force" ]; then
|
|
FORCE_KILL=true
|
|
print_warning "Force mode enabled. Containers will be killed without confirmation."
|
|
fi
|
|
|
|
# Ask for confirmation unless --force is used
|
|
if [ "$FORCE_KILL" = false ]; then
|
|
echo
|
|
read -p "Are you sure you want to kill all running containers? (y/N): " -n 1 -r
|
|
echo
|
|
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
|
|
print_info "Operation cancelled."
|
|
exit 0
|
|
fi
|
|
fi
|
|
|
|
# Kill all running containers
|
|
print_info "Killing all running containers..."
|
|
if sudo docker kill $RUNNING_CONTAINERS; then
|
|
print_info "Successfully killed all running containers."
|
|
else
|
|
print_error "Failed to kill some containers. You may need to run with sudo or check Docker permissions."
|
|
exit 1
|
|
fi
|
|
|
|
# Optional: Remove stopped containers (commented out by default)
|
|
# Uncomment the following lines if you also want to remove the stopped containers
|
|
# print_info "Removing stopped containers..."
|
|
# sudo docker container prune -f
|
|
|
|
print_info "Done!"
|