Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Docker-Compose volume backup
#!/bin/bash
compose_file_path=$1
project_name=$2
backup_path=$3
function backup_volume {
volume_name=$1
backup_destination=$2
docker run --rm -v $volume_name:/data -v $backup_destination:/backup ubuntu tar -zcvf /backup/$volume_name.tar /data
}
echo "Stopping running containers"
docker-compose -f $compose_file_path stop
echo "Mounting volumes and performing backup..."
volumes=($(docker volume ls -f name=$project_name | awk '{if (NR > 1) print $2}'))
for v in "${volumes[@]}"
do
backup_volume $v $backup_path
done
echo "Restarting containers"
docker-compose -f $compose_file_path start
@hamzaabamboo

This comment has been minimized.

Copy link

@hamzaabamboo hamzaabamboo commented Jul 18, 2019

Very nice and easy to use 👍

@tsotnesharvadze

This comment has been minimized.

Copy link

@tsotnesharvadze tsotnesharvadze commented Jun 19, 2020

It's necessary to stop containers?

@caneta

This comment has been minimized.

Copy link

@caneta caneta commented Sep 1, 2021

Nice...and how to restore?

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