Docker Installation and Management
Explore Docker installation procedures for Gentoo and Ubuntu systems, along with essential commands to manage Docker images and volumes effectively.
Install Docker
- Remove packages
for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
- Add Docker's official GPG key:
apt-get update
apt-get install ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
* Add the repository to Apt sources:
```bash
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
tee /etc/apt/sources.list.d/docker.list > /dev/null
apt-get update
- Install docker
bash
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
- Verify that the Docker Engine installation is successful by running the hello-world image
bash
docker run hello-world
- Install docker compose
bash
apt install -y docker-compose
Images
Volumes
docker full wipe of all data
echo "Stopping all running containers..."
docker stop $(docker ps -q)
echo "Removing all containers..."
docker rm $(docker ps -aq)
echo "Removing all images..."
docker rmi -f $(docker images -q)
echo "Removing all volumes..."
docker volume rm $(docker volume ls -q)
echo "Removing all networks (except default ones)..."
docker network prune -f
echo "Cleaning up system-wide Docker data..."
docker system prune -a --volumes -f
echo "Docker cleanup complete!"
docker-image-wiper.sh
images=()
if [ $# -eq 0 ]; then
echo "Usage: $0 <image1> [<image2> ...]"
exit 1
fi
for arg in "$@"; do
images+=("$arg")
done
remove_images() {
for image in "${images[@]}"; do
echo "Removing image: $image"
docker rmi -f "$image"
done
}
remove_containers() {
for image in "${images[@]}"; do
container_ids=$(docker ps -a | awk -v image="$image" '$2 == image {print $1}')
for container_id in $container_ids; do
echo "Removing container: $container_id"
docker rm -f "$container_id"
done
done
}
remove_containers
remove_images
echo "Docker images and containers removed."
docker-remove-all-from-images.sh
#!/bin/bash
images=$(docker image ls)
# Iterate over each line of the output
while IFS= read -r line; do
# Check if the line contains "genieacs"
if [[ $line == *"genieacs"* ]]; then
# Extract the image ID from the line
image_id=$(echo "$line" | awk '{print $3}')
# Remove the Docker image
docker image rm "$image_id"
fi
done <<< "$images"
docker-remover.sh
confirm() {
read -p "$1 (y/n): " choice
case "$choice" in
y | Y) return 0 ;;
n | N) return 1 ;;
*) return 2 ;;
esac
}
docker stop $(docker ps -aq)
docker rm $(docker ps -aq)
if confirm "Do you want to remove all images?"; then
docker rmi $(docker images -aq)
echo "All images have been removed."
else
echo "Image removal cancelled."
fi