Created
March 3, 2024 11:20
-
-
Save yashasolutions/4e961657ec2702d2bd0e79fad16fac70 to your computer and use it in GitHub Desktop.
docker volume snapshot
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e -o pipefail | |
programname=`basename "$0"` | |
display_usage() { | |
echo "usage: $programname (create|restore) source destination" | |
echo " create create snapshot file from docker volume" | |
echo " restore restore snapshot file to docker volume" | |
echo " source source path" | |
echo " destination destination path" | |
echo | |
echo "Tip: Supports tar's compression algorithms automatically" | |
echo " based on the file extention, for example .tar.gz" | |
echo | |
echo "Examples:" | |
echo "docker-volume-snapshot create xyz_volume xyz_volume.tar" | |
echo "docker-volume-snapshot create xyz_volume xyz_volume.tar.gz" | |
echo "docker-volume-snapshot restore xyz_volume.tar xyz_volume" | |
echo "docker-volume-snapshot restore xyz_volume.tar.gz xyz_volume" | |
} | |
case "$1" in | |
"create") | |
if [[ -z "$2" || -z "$3" ]]; then display_usage; exit 1; fi | |
directory=`dirname "$3"` | |
if [ "$directory" == "." ]; then directory=$(pwd); fi | |
filename=`basename "$3"` | |
docker run --rm -v "$2:/source" -v "$directory:/dest" busybox tar cvaf "/dest/$filename" -C /source . | |
;; | |
"restore") | |
if [[ -z "$2" || -z "$3" ]]; then display_usage; exit 1; fi | |
directory=`dirname "$2"` | |
if [ "$directory" == "." ]; then directory=$(pwd); fi | |
filename=`basename "$2"` | |
docker run --rm -v "$3:/dest" -v "$directory:/source" busybox tar xvf "/source/$filename" -C /dest | |
;; | |
*) | |
display_usage | |
exit 1 # Command to come out of the program with status 1 | |
;; | |
esac |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment