Skip to content

Instantly share code, notes, and snippets.

@meepak
Last active September 8, 2024 05:35
Show Gist options
  • Save meepak/179cda481ae8c6f0237980dff8229f10 to your computer and use it in GitHub Desktop.
Save meepak/179cda481ae8c6f0237980dff8229f10 to your computer and use it in GitHub Desktop.
#!/bin/bash
# Function to exit on error
exit_on_error() {
echo "Error: $1"
exit 1
}
# Stop all running Docker containers
echo "Stopping all Docker containers..."
docker ps -q | xargs -r docker stop
# Remove all Docker containers
echo "Removing all Docker containers..."
docker ps -a -q | xargs -r docker rm
# Remove all Docker images
echo "Removing all Docker images..."
docker images -q | xargs -r docker rmi -f
# Remove all Docker volumes (only if volumes exist)
echo "Removing all Docker volumes..."
docker volume ls -q | xargs -r docker volume rm
# Remove all Docker networks (excluding default networks)
echo "Removing all Docker networks..."
docker network ls | grep -v "bridge\|host\|none" | awk '/ / { print $1 }' | xargs -r docker network rm
# Purge Docker and its dependencies if installed
echo "Purging Docker and its dependencies..."
if dpkg -l | grep -q docker-ce; then
sudo apt-get purge -y docker-ce || exit_on_error "Failed to purge docker-ce"
else
echo "docker-ce is not installed, skipping."
fi
if dpkg -l | grep -q docker-ce-cli; then
sudo apt-get purge -y docker-ce-cli || exit_on_error "Failed to purge docker-ce-cli"
else
echo "docker-ce-cli is not installed, skipping."
fi
if dpkg -l | grep -q containerd; then
sudo apt-get purge -y containerd || exit_on_error "Failed to purge containerd"
else
echo "containerd is not installed, skipping."
fi
# Remove Docker directories
echo "Removing Docker directories..."
sudo rm -rf /var/lib/docker /var/lib/containerd
# Remove any remaining Docker configuration files
echo "Removing Docker configuration files..."
sudo rm -rf /etc/docker /etc/containerd /run/docker.sock
# Clean up any leftover package files
echo "Cleaning up leftover files..."
sudo apt-get autoremove -y
sudo apt-get clean
echo "Docker removal complete."
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment