Backup de tous les volumes d’un container Docker

Si vous êtlarge_h-transes un utilisateur de Docker, vous avez déjà sans doutes été contraint de rechercher une solution de sauvegarde.

Dans mon cas, je possède de nombreux containers ayant pour la plupart plusieurs volumes. J’ai donc écrit un script permettant de sauvegarder l’ensemble des volumes dans une archive afin de faciliter la migration ou la reprise d’activité.

Lien vers Githubhttps://github.com/quadeare/docker_volumes_backup

#!/bin/bash
# This script allows you to backup all volumes from a container in a tar.gz file

CONTAINER_NAME=$1
VOLUMES=$(docker inspect --format='{{range $vol, $path := .Config.Volumes}}{{$vol}} {{end}}' $CONTAINER_NAME)
DATE=$(date +"%d-%b-%Y_%H-%M-%S")
FILENAME=$CONTAINER_NAME"_"$DATE.tar.gz

echo "Backup docker's volume(s) from : "$CONTAINER_NAME

usage() {
  echo "Usage: $0 [container name]"
  exit 1
}

if [ -z $CONTAINER_NAME ]
then
  echo "Error: missing container name parameter."
  usage
fi

printf "\n"
echo "Pause docker container : "$CONTAINER_NAME
docker pause $CONTAINER_NAME >> /dev/null

echo "Backup datas from "$CONTAINER_NAME" container"
docker run --rm --volumes-from $CONTAINER_NAME -v $(pwd):/backup ubuntu tar -P -czf /backup/$FILENAME $VOLUMES >> /dev/null

echo "Unpause docker container : "$CONTAINER_NAME
docker unpause $CONTAINER_NAME >> /dev/null

echo "Output file name : "$FILENAME

echo "Done."

 

 

1 commentaire

  1. Comment faire pareil avec un data container ? il faut mettre en pause les containers qui utilise le volume donner et non le container “data”

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.