Skip to content

Instantly share code, notes, and snippets.

@emilienbidet
Created January 19, 2024 22:26
Show Gist options
  • Save emilienbidet/f8898789d5aa5bbe9bc4469f4a26dbed to your computer and use it in GitHub Desktop.
Save emilienbidet/f8898789d5aa5bbe9bc4469f4a26dbed to your computer and use it in GitHub Desktop.
Backup all docker volumes bash script
#!/bin/bash
# Create the backup directory if it doesn't exist
mkdir -p "./backup"
# Get the list of all Docker volumes
VOLUMES=$(docker volume ls --quiet)
# Iterate over each volume and perform the backup
for VOLUME_ID in $VOLUMES; do
VOLUME_NAME=$(docker volume inspect --format '{{.Name}}' "$VOLUME_ID" | sed 's/^\///') # Extract volume name
BACKUP_FILE="/backup/$VOLUME_NAME.tar.gz"
echo "Backing up $VOLUME_NAME to $BACKUP_FILE"
# Perform the backup
docker run --rm -v "$VOLUME_NAME":/data -v ./backup:/backup alpine tar czf "$BACKUP_FILE" -C /data .
done
echo "Backup completed for all volumes."
@emilienbidet
Copy link
Author

Easy bash script to archive all your docker volumes.

Simply run

curl https://gist.githubusercontent.com/emilienbidet/f8898789d5aa5bbe9bc4469f4a26dbed/raw/5b9e254651d5f9e4a6ea845d3cfb3195977af2d8/backup_volumes.sh -o backup_volumes.sh
chmod +x backup_volumes.sh
bash backup_volumes.sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment