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
emerge --ask docker docker-compose
- 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
Remove Docker Images
docker image rm <volume_name>
Volumes
Create a volume
docker volume create
Display detailed information on one or more volumes
docker volume inspect
List volumes
docker volume ls
Remove unused local volumes
docker volume prune
Remove one or more volumes
docker image rm matomo
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