Forum général.cherche-logiciel Et vous, comment sauvegardez vous vos données "Dockerisées" ?

Posté par  . Licence CC By‑SA.
Étiquettes :
6
27
jan.
2025

Bonjour LinuxFr,

Pour gérer un petit serveur personnel, je suis actuellement en train d'apprendre Docker. Ce n'est absolument pas nécessaire, mais on est geek ou ne l'est pas…

J'ai obtenu des PoC qui fonctionnent, je suis content, et j'en suis à l'étape : "mais comment je sauvegarde ce bordel ???"

Après pas de mal de Google, il y a principalement 2 écoles :
- utiliser des "bind mount" et sauvegarder depuis l'hôte
- utiliser des "volumes", et faire un tar avec une image docker dédiée

De ce que j'ai pu lire sur docker quand j'ai commencé, l'utilisation de "volumes" est recommandée pour des histoires de portabilité, je suis donc parti sur cette solution. Par contre, clairement, faire un "tar" tous les jours de mes données (~150 Go, dont beaucoup de photos), ça ne va pas être possible…

Je suis donc à la recherche d'une solution "moderne" avec des sauvegardes incrémentales/différentielles, de la compression de données, de la déduplication, bref, une solution qui me permette de gérer mes sauvegardes tout en économisant sur mon espace disque.

J'ai trouvé quelques solutions intéressantes à base de Kopia, de borgmatic ou encore de duplicity, mais avant d'aller plus loin, j'aurai aimé un vrai retour d'expérience.

Alors, Cher LinuxFRien, comment sauvegardes tu tes données sous docker ?

  • # Bind + restic

    Posté par  . Évalué à 4 (+3/-0).

    J'utilise des "bind" et je backup avec restic qui gère l'incrémental et le chiffrement. Je ne backup que ce que je ne peux pas reconstruire, les données sous forme de fichier et les configs docker-compose.
    Par ailleurs j'utilise automysqlbackup pour faire un dump de mariadb, ce dump étant sauvegardé par restic.

    Je vois pas trop ce que les volumes m'apporteraient sur un serveur perso. J'ai essayé un mais j'ai trouvé ça incidentogène. Un ptit docker compose down mal avisé et pouf, tout perdu…

    PS : pour restic, j'utilise resticprofiles. Ça gère les variables d'environnement de façon appropriée et génère les services et timers systemd qui vont bien.

  • # bind ftw

    Posté par  (site web personnel, Mastodon) . Évalué à 1 (+0/-0).

    Ce n'est absolument pas nécessaire,

    Franchement, c'est quand même méga pratique pour bien siloter les applications et éviter les inter-incompatibilités.

    mais on est geek ou ne l'est pas…

    Ah oui, ça aussi 😁

    utiliser des "bind mount" et sauvegarder depuis l'hôte

    C'est ma méthode, même si ça reste très artisanal et que je fais ça pour mon compte, je me verrai pas industrialiser le système.
    Pour MySQL/MariaDB, je partage en plus un dossier "dump" qui reçoit les dumps que je rsync ensuite ailleurs.
    Pour PostgreSQL et SQLite et les autres bases de données, même principe.

    Pour les données fichiers (ex : Nextcloud), je fais du Borg-Backup qui gère le diff et la déduplication tout seul.

    Puis un Borg Backup pour toutes les configs textes (docker-compose.yml et autres).

    • [^] # Re: bind ftw

      Posté par  . Évalué à 1 (+0/-0).

      utiliser des "bind mount" et sauvegarder depuis l'hôte

      C'est ma méthode, même si ça reste très artisanal et que je fais ça pour mon compte, je me verrai pas industrialiser le système.

      C'est bien tout mon problème : je ne suis pas encore rendu aux orchestrateurs, mais comment font les admins qui gèrent 15 000 containers ? Comment se passe leur sauvegarde ? J'ai du mal à croire qu'il n'y pas de système 'industrialisé" pour ça aussi.

      • [^] # Re: bind ftw

        Posté par  (site web personnel, Mastodon) . Évalué à 1 (+0/-0).

        Je pense que tu donnes la réponse : quand tu industrialises tu ne fais pas du Docker ou Docker Compose simple, tu passes à K8s ou autre, et là les systèmes de backup sont autrement plus complexes.

      • [^] # Re: bind ftw

        Posté par  (Mastodon) . Évalué à 2 (+0/-1). Dernière modification le 03 février 2025 à 12:44.

        C'est bien tout mon problème : je ne suis pas encore rendu aux orchestrateurs, mais comment font les admins qui gèrent 15 000 containers ? Comment se passe leur sauvegarde ? J'ai du mal à croire qu'il n'y pas de système 'industrialisé" pour ça aussi.

        Il y a différentes méthodes selon les types d'applications et le driver de stockage utilisé.

        Par exemple sur kubernetes tes containers tournent dans un pod (le même pod que dans podman). Dans ce pod tourne ton container, mais potentiellement d'autres containers qu'on appelle side-car, comme le petite panier à roulette à côté d'une moto. Un cas fréquent de side-car container est d'avoir un outil de backup qui par exemple monte le volume de données pour le copier ailleurs.

        Mais il y a aussi de nombreux drivers de stockage kubernetes qui supportent les instantanés. Tu as une liste ici avec les fonctionnalitées supportées:
        https://kubernetes-csi.github.io/docs/drivers.html

  • # Proxmox Backup Server

    Posté par  (site web personnel) . Évalué à 2 (+0/-0).

    Sauf erreur, Proxmox Backup Server a une option pour signaler qu'on a à faire à une image disque. Il gère la dédup bloc, ça limite l'espace occupé

    Votez les 30 juin et 7 juillet, en connaissance de cause. http://www.pointal.net/VotesDeputesRN

  • # easy peasy ?

    Posté par  . Évalué à 5 (+2/-0).

    le container docker se recréé à partir du dockerfile ou dockercompose -> c'est lui qu'il te fait sauvegarder

    tes données sont ensuite prises et stockées de maniere permanente en dehors du conteneur, par un systeme ou un autre (bind ou volume)

    il faut donc considerer qu'une bonne sauvegarde sera de sauvegarde le dockerfile ET les données du volume (un espace disque de la machine hote)

    • [^] # Re: easy peasy ?

      Posté par  . Évalué à 1 (+0/-0).

      Tout à fait d'accord, mais comment ?

      • [^] # Re: easy peasy ?

        Posté par  . Évalué à 3 (+0/-0).

        comme n'importe quel dossier.

        tu peux faire du rsync vers un autre serveur,
        du borg/restic
        du snaphost si ton stockage est en LVM ou en ZFS

        plein de solution pour sauvegarder des contenus de dossiers plutot que de sauvegarder la VM/le docker en lui meme

        • [^] # Re: easy peasy ?

          Posté par  . Évalué à 1 (+0/-0).

          Je pense que la question du "comment ?" est relative à l'utilisation des volumes.

          Pour sauvegarder des volumes, il faudra déployer un container qui expose les données du-dit volume, via rsync, ssh, … ça complique un peu.

          À mon avis les volumes c'est bien en environnement cloud, en usage perso, les bindings c'est plus simple. Je n'ai personnellement pas de problème de performance, plutôt des problèmes de gestion des droits d'accès.

          • [^] # Re: easy peasy ?

            Posté par  . Évalué à 3 (+0/-0).

            si tu regardes bien, un "volumes" est un dossier dans /var/xxxx/docker/volumes
            apres il faut savoir qui est qui.

            j'utilise alors les volumes host sous la forme
            - /chemin/vers/dossier/hote:/chemin/dans/le/containeur

            ainsi mes données sont directement visible depuis l'hote, eventuelement limitée à certains users, et je peux les sauvegarder comme si c'etait juste un dossier de l'hote

            autres pistes, ton docker exporte ses données et inclut alors les outils de backup en plus de son "OS"

  • # Commentaire supprimé

    Posté par  . Évalué à -4 (+0/-5). Dernière modification le 30 janvier 2025 à 15:23.

    Ce commentaire a été supprimé par l’équipe de modération.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.