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."

 

 

Le cloud personnel, le début du dilemme !

Un des choix que j’ai eu à faire récemment est le choix d’un cloud personnel pour stocker mes fichiers. En effet, je n’ai jamais vraiment eu envie de stocker mes fichiers sur des plateformes publiques comme Dropbox ou même Google Drive.

C’est pour cela que je me suis peu à peu tourné vers des solutions installable sur un serveur dédié comme celui que je possède.

 

Deux concurrents majeurs

Malheureusement, il n’y a pas 50 solutions véritablement abouties. Pour moi il n’y a que :

  • Seafile
  • Owncloud

Continuer la lecture de Le cloud personnel, le début du dilemme !