Aller au contenu

Comment sauvegarder un conteneur docker ?


jxien

Messages recommandés

Bonjour, 

je fais tourner sur mon NAS des docker. Un serveur Minecraft, et un relai Tor. Je dois absolument les sauvegarder sur mon ordi, histoire que si il y avait un problème, que les données ne soient pas perdus. Mais en l'exportant simplement, je n'arrive pas à les lancer. Des messages d'erreurs etc. 

Comment je peux faire pour sauvegarder ces conteneur ? 

 

Lien vers le commentaire
Partager sur d’autres sites

Sur un PC je ne sais pas.
Mais sur un NAS :

  1. Je sauvegarde le container en le dupliquant avec Portainer, en le renommant,
    S'il se casse lors d'une mise à jour (jdownloader2 je te vois...), je n'ai qu'à supprimer et renommer la copie.
  2. Et je sauvegarde docker sur le NAS avec Snapshot replication, pour lequel il est peut-être possible de définir l'emplacement de sauvegarde si celui-ci est un espace partagé monté (pas testé car ici c'est sur un autre volume du NAS)
Lien vers le commentaire
Partager sur d’autres sites

Il n'y a pas vraiiment d'outil de "sauvegarde" d'un conteneur.
Par essence, Docker est à la base un outil pratique pour isoler une application et se passer des problèmes liés aux dépendances.
Même si c'est de moins en moins le cas, tu trouveras encore beaucoup de dev qui estiment que Docker c'est bien la partie développement, mais qu'en production une installation native est préférable, c'est aussi moins de boulot pour eux. 😄

Bon attention ça a tendance à disparaître, surtout avec l'avènement de soft comme Kubernetes et autres logiciels d'orchestration de déploiement.
Une grande partie des soft ont des images Docker fonctionnelles, officielles ou non officielles.

C'était pour la petite parenthèse culture.

Maintenant, pour sauvegarder tes conteneurs, ce qui est important :

  • Les paramètres du conteneur : c'est ce que tu exportes si tu te sers de l'interface DSM, ça peut également être la ligne de commande servant à créer/lancer le conteneur,ou le fichier YAML pour docker-compose.
  • Les données : si une image est bien faite, les données importantes pour la restitution d'un conteneur sont localisées dans les volumes exposés par l'image. Donc si tu as monté ces volumes sur le NAS, les données persisteront à la suppression du conteneur. Donc il te suffit de sauvegarder ces données.

Ca peut être via un bête script qui chaque jour copie le contenu des dossiers dans un dossier partagé du PC monté via Filestation, mais ça peut aussi être via rsync, une ligne de commande à lancer sur le NAS et un logiciel de type Cygwin sur Windows. Et pourquoi pas, suviant la taille des données, une sauvegarde sur un Google Drive ? Bref, à toi de voir la solution qui te convient le plus.

Lien vers le commentaire
Partager sur d’autres sites

Merci, oui je n'ai pas trouvé d'autres solutions. Alors j'ai simplement crée un dossier document à la racine / du Linux, ainsi qu'un volume dans le smb de synolgy, puis j'ai utilisé la commande dans le bash. Les deux dossiers sont bien évidemment liés dans les paramètres du conteneur.

cp -r /chemin/vers/data/* /chemin/vers/data/document/

Donc, il copie data ( j'utilise une étoile pour tout sélectionner), puis je le copie dans document. Cela permet de retrouver tout les fichiers copié, sur mon serveur. Cependant, je n'ai pas trouvé de solution pour sauvegarder entièrement un conteneur. sauf de copier un par un chaque dossier de la racine.

Alors cette technique est un peu longue, mais elle marche très bien. De plus, si j'écrase puis que je recopie data dans document, alors les modifications sont mis à jour sur le serveur. 

Lien vers le commentaire
Partager sur d’autres sites

Attention en copiant ainsi les données, si elles sont utilisées au moment de la copie, il se passe quoi ?
Si c'est une base de données, c'est la corruption assurée de la copie.

Je pense qu'il est préférable d'utiliser un rsync.

Ensuite, comme @.Shad. l'a dit, ce qui est utile de sauvegarder pour un conteneur, c'est le volume qui est monté dans le conteneur. Et si tu as installé créé correctement le conteneur, tu as utilisé un point de montage sur ton nas pour accéder à la configuration/données/... du conteneur.

Le reste du conteneur est inutile, ça ne sert à rien de le sauvegarder...

Après, si tu veux vraiment, tu sauvegardes avec Hyperbackup le dossier /volumeX/docker/ complètement. Mais même en faisant celà, tu ne sauvegarderas pas tout le conteneur... pas les OS (Linux Alpine, Arch, ou autre...), ni les binaires, etc...
Juste les données.

PS : pour les conteneurs utilisant ou étant une base de données, comme MariaDB, Vaultwarden, Gitea, etc... il est préférable d'arrêter le conteneur avant de faire la copie des données.

PPS : et attention, c'est cp -R /path_to/source /path_to/destination la commande que tu devrais utiliser.

Et si tu veux un vrai contrôle, rsync : https://doc.ubuntu-fr.org/rsync

rsync -avh --progress --append --exclude={'@eaDir','#recycle','~$*.*','~*','~*.tmp','desktop.ini','.DS_Store'} --log-file="/volume1/rsync-`date +%Y-%m-%d--%Hh%Mm%Ss`.log" /path_to/source /path_to/destination/
Lien vers le commentaire
Partager sur d’autres sites

Merci pour ton message, alors en fait non seulement les fichiers ne sont pas corrompues, mais ils sont automatiquement mis à jour en cas de modification. Alors oui, j'imagine que Hyperbackup serait bien plus simple, je vais m'y pencher. Cependant, j'avais aussi un conteneur avec un relai Tor. Cela m'a permis de sauvegarder les keys, pour ensuite mettre à jour le relai à une version plus récente et ainsi garder mon identité.  Mais c'est sur que pour des serveur minecraft, ou des serveurs appache etc, hyperbackup serait très utile car il offre bien plus de fonctionnalités. Et surtout, c'est automatique.

Ps : La commande "cp" utilise "-R" et "-r" de manière identique. Les deux options signifient la même chose : copier récursivement un dossier et son contenu. Mais il est préférable d'utiliser l'option "-r" pour des raisons de compatibilité entre différentes versions de Linux. De plus, le -f permet de remplacer automatiquement le fichier existant sans demander de confirmation.

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.